ASP.Net中数据展示控件的嵌套使用示例
1,工作中遇到这样一个需求,页面上要把所有的User加载出来,同时每个User后面紧跟着要把User的任务加载出来!我的处理方法是用Repeater来加载所有的User,同时在Repeater里面嵌套一个GridView,将每个User的任务展示出来!代码如下
前台代码:
<asp:RepeaterID="Repeater1"runat="server"
onitemdatabound="Repeater1_ItemDataBound">
<HeaderTemplate>
<tableborder="0"cellspacing="0"cellpadding="0"width="100%">
<tr>
</HeaderTemplate>
<ItemTemplate>
<tdclass="list_table_in">
<spanclass="leaderTitle">高管:<ahref='/LeaderSchedule/_layouts/LS/LeaderDetail.aspx?loginName=<%#Eval("LoginName")%>'><%#Eval("UserName")%></a></span><asp:GridViewID="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">
<AlternatingRowStyleBackColor="#FDFEFF"/>
<HeaderStyleHorizontalAlign="Center"ForeColor="Black"Height="20"/>
<RowStyleHorizontalAlign="Center"Height="26px"/>
<Columns>
<asp:BoundFieldHeaderText="日期"ItemStyle-CssClass="custom"DataField="Date"SortExpression="Date">
<ItemStyleWidth="15%"/>
</asp:BoundField>
<asp:BoundFieldHeaderText="时间"DataField="Time"SortExpression="Time">
<ItemStyleWidth="11%"/>
</asp:BoundField>
<asp:BoundFieldHeaderText="工作安排"DataField="WorkPlan"SortExpression="WorkPlan">
<ItemStyleWidth="11%"/>
</asp:BoundField>
<asp:BoundFieldHeaderText="地点"DataField="Place"SortExpression="Place">
<ItemStyleWidth="11%"/>
</asp:BoundField>
</Columns>
<PagerTemplate>
</PagerTemplate>
</asp:GridView>
</td>
<asp:LiteralID="Literal1"runat="server"Text='<%#Eval("Flag")%>'></asp:Literal>
</ItemTemplate>
<FooterTemplate>
</tr></table>
</FooterTemplate>
</asp:Repeater>
后台代码:
protectedvoidRepeater1_ItemDataBound(objectsender,RepeaterItemEventArgse)
{
try
{
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
GridViewgv=e.Item.FindControl("gv_InRep")asGridView;//找到里层的repeater对象
Leaderrowv=(Leader)e.Item.DataItem;//找到分类Repeater关联的数据项
stringtypeid=rowv.LoginName;//获取填充子类的id
SetSorting();
gv.DataSource=PointDataSource(typeid);
gv.DataBind();
}
}
catch(Exceptionex)
{
SysLogsyslog=newSysLog();
syslog.ListName=ConstData.ListName_PCITC_LS_Schedule;
syslog.LType="Repeater的Item绑定事件异常";
syslog.WorkFlowName="领导日程管理系统";
syslog.Location="Repeater绑定数据:OtherSchedule.aspx";
syslog.Message="页面信息加载异常:"+ex.Message;
syslog.DataSource=0;
logprovider.AddAuditRecordToSource(syslog);
}
}