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); } }