關于多層repeater,datagrid,datalist嵌套的示例
2024-07-21 02:15:51
供稿:網友
菜鳥學堂:
常常在csdn上看到有網友問如何才能實現repeater,datalist, datagrid的嵌套問題,下面給出一個3層嵌套的示例,可以無限級嵌套下去
<asp:repeater id="rpt_catalog" onitemdatabound="rpt_catalog_onitemdatabound" runat="server">
<itemtemplate>最頂層repeater,index:<%#container.dataitem%><br>
<asp:repeater id="rpt_board" onitemdatabound="rpt_board_onitemdatabound" runat="server">
<itemtemplate> 第2層repeater,index:<%#container.dataitem%><br>
<asp:repeater id="rpt_boardmaster" runat="server">
<itemtemplate> 第3層repeater,index:<%#container.dataitem%><br>
</itemtemplate>
</asp:repeater>
</itemtemplate>
</asp:repeater>
</itemtemplate>
</asp:repeater>
private intfirst as integer
private intsecond as integer
private sub page_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load
'put user code to initialize the page here
dim al as new arraylist
al.add(0)
al.add(1)
rpt_catalog.datasource = al
rpt_catalog.databind()
end sub
sub rpt_catalog_onitemdatabound(byval sender as object, byval e as repeateritemeventargs)
dim rpt as repeater
rpt = e.item.findcontrol("rpt_board")
intfirst = e.item.itemindex
dim al as new arraylist
al.add(intfirst & ".0")
al.add(intfirst & ".1")
rpt.datasource = al
rpt.databind()
end sub
sub rpt_board_onitemdatabound(byval sender as object, byval e as repeateritemeventargs)
dim rpt as repeater
rpt = e.item.findcontrol("rpt_boardmaster")
intsecond = e.item.itemindex
dim al as new arraylist
al.add(intfirst & "." & intsecond & ".0")
al.add(intfirst & "." & intsecond & ".1")
rpt.datasource = al
rpt.databind()
end sub
代碼經過測試,但請自行優化