asp.net中數(shù)據(jù)展示控件的嵌套使用示例

字號(hào):


    1,工作中遇到這樣一個(gè)需求,頁面上要把所有的user加載出來,同時(shí)每個(gè)user后面緊跟著要把user的任務(wù)加載出來!我的處理方法是用repeater來加載所有的user,同時(shí)在repeater里面嵌套一個(gè)gridview,將每個(gè)user的任務(wù)展示出來!代碼如下
    前臺(tái)代碼:
    <asp:repeater id=repeater1 runat=server
    onitemdatabound=repeater1_itemdatabound>
    <headertemplate>
    <table border=0 cellspacing=0 cellpadding=0 width=100%>
    <tr>
    </headertemplate>
    <itemtemplate>
    <td class=list_table_in>
    <span class=leadertitle>高管:<a href='/leaderschedule/_layouts/ls/leaderdetail.aspx?loginname=<%#eval(loginname) %>'><%#eval(username) %></a></span><asp:gridview id=gv_inrep runat=server autogeneratecolumns=false allowsorting=true
    onrowcreated=gv_donelist_rowcreated onsorting=gv_donelist_sorting allowpaging=true
    cssclass=tasklisttbl width=100% onrowdatabound=gv_donelist_rowdatabound
    enablemodelvalidation=true>
    <alternatingrowstyle backcolor=#fdfeff />
    <headerstyle horizontalalign=center forecolor=black height=20 />
    <rowstyle horizontalalign=center height=26px />
    <columns>
    <asp:boundfield headertext=日期 itemstyle-cssclass=custom datafield=date sortexpression=date>
    <itemstyle width=15% />
    </asp:boundfield>
    <asp:boundfield headertext=時(shí)間 datafield=time sortexpression=time>
    <itemstyle width=11% />
    </asp:boundfield>
    <asp:boundfield headertext=工作安排 datafield=workplan sortexpression=workplan>
    <itemstyle width=11% />
    </asp:boundfield>
    <asp:boundfield headertext=地點(diǎn) datafield=place sortexpression=place>
    <itemstyle width=11% />
    </asp:boundfield>
    </columns>
    <pagertemplate>
    </pagertemplate>
    </asp:gridview>
    </td>
    <asp:literal id=literal1 runat=server text='<%#eval(flag) %>'></asp:literal>
    </itemtemplate>
    <footertemplate>
    </tr></table>
    </footertemplate>
    </asp:repeater>
    后臺(tái)代碼:
    protected void repeater1_itemdatabound(object sender, repeateritemeventargs e)
    {
    try
    {
    if (e.item.itemtype == listitemtype.item || e.item.itemtype == listitemtype.alternatingitem)
    {
    gridview gv = e.item.findcontrol(gv_inrep) as gridview;//找到里層的repeater對(duì)象
    leader rowv = (leader)e.item.dataitem;//找到分類repeater關(guān)聯(lián)的數(shù)據(jù)項(xiàng)
    string typeid = rowv.loginname; //獲取填充子類的id
    setsorting();
    gv.datasource = pointdatasource(typeid);
    gv.databind();
    }
    }
    catch (exception ex)
    {
    syslog syslog = new syslog();
    syslog.listname = constdata.listname_pcitc_ls_schedule;
    syslog.ltype = repeater的item綁定事件異常;
    syslog.workflowname = 領(lǐng)導(dǎo)日程管理系統(tǒng);
    syslog.location = repeater綁定數(shù)據(jù):otherschedule.aspx;
    syslog.message = 頁面信息加載異常: + ex.message;
    syslog.datasource = 0;
    logprovider.addauditrecordtosource(syslog);
    }
    }