ASP.Net中数据展示控件的嵌套使用示例

1,工作中遇到这样一个需求,页面上要把所有的User加载出来,同时每个User后面紧跟着要把User的任务加载出来!我的处理方法是用Repeater来加载所有的User,同时在Repeater里面嵌套一个GridView,将每个User的任务展示出来!代码如下

前台代码:

<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="时间" DataField="Time" SortExpression="Time">
<ItemStyle Width="11%" />
</asp:BoundField>
<asp:BoundField HeaderText="工作安排" DataField="WorkPlan" SortExpression="WorkPlan">
<ItemStyle Width="11%" />
</asp:BoundField>
<asp:BoundField HeaderText="地点" 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>

后台代码:

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对象
Leader rowv = (Leader)e.Item.DataItem;//找到分类Repeater关联的数据项
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 = "领导日程管理系统";
syslog.Location = "Repeater绑定数据:OtherSchedule.aspx";
syslog.Message = "页面信息加载异常:" + ex.Message;
syslog.DataSource = 0;
logprovider.AddAuditRecordToSource(syslog);
}
}
(0)

相关推荐

  • 在ASP.NET 2.0中操作数据之二十六:排序自定义分页数据

    导言 和默认翻页方式相比,自定义分页能提高几个数量级的效率.当我们的需要对大量数据分页的时候就需要考虑自定义分页,然而实现自定义分页相比默认分页需要做更多工作.对于排序自定义分页数据也是这样,在本教程中我们就会扩展前面的例子来实现自定义分页数据的排序. 注意:既然本教程是基于前一个的,因此我们需要把前面教程示例页面EfficientPaging.aspx的<asp:Content>元素中的代码复制到本教程SortParameter.aspx示例页面中.关于如何进行这样的复制操作请参看为删除数据

  • asp.net实现DataList与Repeater嵌套绑定的方法

    本文实例讲述了asp.net实现DataList与Repeater嵌套绑定的方法.分享给大家供大家参考,具体如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="home.aspx.cs" Inherits="home" %> <body> <form id="form1" runat="server&

  • 在ASP.NET 2.0中操作数据之三十一:使用DataList来一行显示多条记录

    导言 在前两章的做的DataList的例子里我们都是使用单列的HTML<table>来显示数据.而自定义使DataList将数据显示在多列多行的table里也非常容易.而且还可以以单行多列来显示数据. 我们可以通过RepeatColumns和RepeatDirection属性来自定义DataList.这两个属性决定了数据显示时候的列数和方向(水平或垂直).图1是以一个3列的table来显示product信息的DataList例子. 图 1: DataList 一行显示三条product信息 通

  • 在ASP.NET 2.0中操作数据之二十八:GridView里的Button

    导言 一般控件(比如GridView)显示数据的时候对数据只能读取,而需要处理数据的功能是非常常见的.典型的情况是为每行数据添加一个Button, LinkButton, 或ImageButton . 当点击这些button时,数据会PostBack,执行一些服务器端的代码. 一条条的编辑或删除数据是最常见的情况.实际上,编辑和删除是如此常见,从概述插入.更新和删除数据 开始, 我们可以看到GridView, DetailsView, 和 FormView可以零代码的完成这些功能. 除了编辑和删

  • 在ASP.NET 2.0中操作数据之三十:格式化DataList和Repeater的数据

    导言 在前面的教程里我们学习了DataList提供了一些风格样式的属性.而且我们还学习了如何定义HeadStyle, ItemStyle, AlternatingItemStyle, 和SelectedItemStyle等属性的默认CSS.除了这四个属性外,DataList还提供了其它属性,比如Font, ForeColor, BackColor, 和BorderWidth.而Repeater没有提供任何这样的属性.如果你需要用Reperter来实现这些效果,你就需要在templates里直接写

  • 在ASP.NET 2.0中操作数据之三十二:数据控件的嵌套

    导言 除了静态HTML和数据绑定语法,template也可以包含Web控件和用户控件.这些控件的属性可以通过声明语法,数据绑定语法或在服务器端通过事件处理编程来设置. 通过将控件嵌入到template里,可以自定义界面,提升用户体验.例如,在在GridView控件中使用TemplateField 里,我们学习了如何通过在GridView的TemplateField里加一个Calendar控件来表示员工的雇佣日期.在给编辑和新增界面增加验证控件 和定制数据修改界面 里,我们学习了如何通过添加验证控

  • ASP.NET中repeater嵌套实现代码(附源码)

    1.A,运行效果图  1.B,源代码(主要代码摘要) /App_Code/DBConnection.cs /App_Code/CategoryInfo.cs 复制代码 代码如下: using System.Collections.Generic; public class CategoryInfo { int categoryid; string categoryname; string categorydesc; IList<ArticleInfo> articles; /// <su

  • 在ASP.NET 2.0中操作数据之二十九:用DataList和Repeater来显示数据

    导言 在之前的28篇教程的例子里,如果我们需要显示某个数据源的多条记录,我们使用GridView .GridView 的一行表示数据源的一条记录,列表示一个字段.虽然GridView 用来显示数据,分页,排序,编辑,删除非常的方便,但是有点臃肿.而且GridView 结构的标记是固定的-它包含一个带有<tr>和<td>的HTML <table>标记. 为了在显示多条记录时,有更好的自定义功能,ASP.NET 2.0提供了DataList 和Repeater (ASP.N

  • ASP.NET中Form表单不可以嵌套使用

    我非常确定在ASP 中是可以有多个form 表单的,以前常常这样干的,在后台分类管理页面中,把添加和修改放在同一个页面,这样就需要用到两个 form 表单进行提交服务器代码处理. 经过测试,在ASP.NET 也是可以一个页面有多个form 表单的,例如下面的代码: <form id="form1"></form><form id="form2"></form><form id="form3"&

  • 在ASP.NET 2.0中操作数据之二十七:创建自定义排序用户界面

    简介 显示大量已经按类别(不是很多)排序的数据但没有类别分界线,用户很难找到所需要的类别.例如,数据库中只有9个类别(8个不同的类别和1个null),共81种产品.现在用一个GridView列出所有产品,假设有用户对类别Seafood的产品感兴趣,她一定会按类别排序,把Seafood产品排列在一起.排序后,用户便寻找Seafood产品开始和结束的地方.虽然是按英文字母排列类别不难找到Seafood,但仍要花些时间在GridView寻找.为了进一步的区分类别,许多网站使用类别分界线这种排序用户界面

随机推荐