【问题标题】:How to access the bound DataSource item in the ASP.NET ListView's DataBound event?如何访问 ASP.NET ListView 的 DataBound 事件中绑定的 DataSource 项?
【发布时间】:2010-09-22 12:24:30
【问题描述】:

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

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

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

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

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

你有什么建议吗?

我能想到的唯一解决方法是在 ItemDataBound 事件中执行计算并将结果累积到一些私有字段中。但它真的很难看,并且更难获得一些必需的值。

非常感谢。

【问题讨论】:

    标签: asp.net listview sqldatasource databound


    【解决方案1】:

    在 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
    }
    

    【讨论】:

    • 不幸的是它不起作用。如果绑定来自 DataSourceID 属性,则属性 DataSource 为 null。 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    • 2013-10-21
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多