[問題] ASP.Net Repeater元件ItemDataBound問題
我目前使用了三層的Repeater,結構如下
<asp:Repeater ID="Repeater1" ruant="Server" DataSourceID="SqlDataSource1">
<ItemTeplate>
<asp:Repeater ID="Repeater2" ruant="Server" DataSourceID="SqlDataSource2">
<ItemTeplate>
<asp:Repeater ID="Repeater3" ruant="Server" DataSourceID="SqlDataSource3">
<ItemTeplate>
<ItemTeplate>
</asp:Repeater>
<ItemTeplate>
</asp:Repeater>
<ItemTeplate>
</asp:Repeater>
不過在Repeater1_ItemDataBound事件中取值有點問題
Pravite Sub Repeater1_ItemDataBound(Byval source As Object,
Byval e As System.Web.UI.WebControls.RepeaterItemEventArgs)
Dim drv As DataRowView = Ctype(e.Item.DataItem, DataRowView)
Dim tmpStr As String = drv.Row.Item("e_No")
End Sub
上面的事件中,使用e.Item.DataItem去取得目前SqlDataSource檢視的資料列
但是第一次檢視時都是Nothing,等到Repeater2與Repeater3都做過一次之後
第二次進入上面的事件才會抓到SqlDataSource查到的資料
但是「drv.Row.Item("e_No") <-目前檢視的資料列」指定的列是第一列
所以就是內部Repeater2, Repeater3已經執行一次,Repeater1才抓到第1列
這樣子在指定名稱的時候會出錯
請問有人遇過這個問題嗎,這問題要怎麼解決??
--------------------------------------------------------------------------
剛剛試過用單層的沒有這個問題,一進ItemDataBound抓e.Item.DataItem就有值了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.240.53
※ 編輯: czs0607 來自: 118.168.240.53 (10/07 18:59)