關于多層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
代碼經過測試,但請自行優化