如何访问ASP.NET ListView的DataBound事件中绑定的DataSource项?

时间:2010-09-22 12:24:30

标签: asp.net listview sqldatasource databound

我知道问题已经发布here,但我们没有找到真正的解决方案。

我已将ListView绑定到SqlDataSource,并且我想在LayoutTemplate中创建的视图中的控件中编写一些文本,具体取决于返回的行的某些属性。

显然,我正在使用ItemDataBound事件来提供我的项目,但这不是重点。

自发解决方案是绑定ListView.DataBound事件并访问原始数据源(DataTable?)并执行所需的计算。

我检查了Items属性,尽管它不是空的,但相关的DataItem属性为null。

你有什么建议吗?

我唯一可以解决的问题是在ItemDataBound事件中执行计算并将结果累积到某些私有字段中。但是看到并且更难以获得一些所需的值真的很难看。

非常感谢。

1 个答案:

答案 0 :(得分:0)

在ItemDataBound中,您应该能够通过DataSource属性访问Listview的数据源(您可能需要将其强制转换为DataTable):

protected void Listview1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    DataTable sourceData;

    sourceData = (DataTable)Listview1.DataSource;

    // sourceData is a DataTable, you can run .Compute or whatever you need
}