2010-09-22 20 views
0

我知道這個問題已經發布here但我們沒有得到真正的解決方案。如何訪問ASP.NET ListView的DataBound事件中綁定的DataSource項目?

我已經將我的ListView綁定到SqlDataSource,並且我想根據返回的行的某些屬性在LayoutTemplate中創建的視圖中的某個控件中編寫一些文本。

顯然,我使用ItemDataBound事件來提供我的項目,但這不是重點。

自發的解決方案是綁定ListView.DataBound事件並訪問原始數據源(DataTable?)並執行所需的計算。

我檢查了Items屬性,儘管它不爲空,但相關的DataItem屬性爲null。

你有什麼建議嗎?

唯一可以解決的問題是在ItemDataBound事件中執行計算並將結果累積到一些專用字段中。但是看到它並且使得更難獲得一些所需的值是非常難看的。

非常感謝。

回答

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 
} 
+1

倒黴它不工作。如果綁定來自DataSourceID屬性,則DataSource屬性爲null。 :( – Kralizek 2010-09-22 14:44:06

相關問題