IT知识库 购物 网址 游戏 小说 歌词 快照 开发 股票 美女 新闻 笑话 | 汉字 软件 日历 阅读 下载 图书馆 编程 China
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
vbs/VBScript DOS/BAT hta htc python perl 游戏相关 VBA 远程脚本 ColdFusion ruby专题 autoit seraphzone PowerShell linux shell Lua Golang Erlang 其它教程 CSS/HTML/Xhtml html5 CSS XML/XSLT Dreamweaver教程 经验交流 开发者乐园 Android开发资料
站长资讯 .NET新手 ASP.NET C# WinForm Silverlight WCF CLR WPF XNA VisualStudio ASP.NET-MVC .NET控件开发 EntityFramework WinRT-Metro Java C++ PHP Delphi Python Ruby C语言 Erlang Go Swift Scala R语言 Verilog 其它语言 架构设计 面向对象 设计模式 领域驱动 Html-Css JavaScript jQuery HTML5 SharePoint GIS技术 SAP OracleERP DynamicsCRM K2 BPM 信息安全 企业信息 Android开发 iOS开发 WindowsPhone WindowsMobile 其他手机 敏捷开发 项目管理 软件工程 SQLServer Oracle MySQL NoSQL 其它数据库 Windows7 WindowsServer Linux
  IT知识库 -> .NET新手区 -> 使用Repeater控件实现三层嵌套以及分页效果 -> 正文阅读

[.NET新手区]使用Repeater控件实现三层嵌套以及分页效果

使用Repeater控件实现三层嵌套以及分页效果 PS: 第一次用Repeater控件 记录一下
     请忽略我的命名不规范  请忽略我的最终效果图(太丑了) 需要用到的朋友可以自行调整的漂亮点
====================最终效果图===================

=====================HTML======================

 1   <body>
 2   <form id="form1" runat="server">
 3   <div>
 4   <div>
 5   <asp:Repeater ID="ParentRepeater" runat="server" OnItemCommand="ParentRepeater_ItemCommand" OnItemDataBound="ParentRepeater_ItemDataBound">
 6   <HeaderTemplate>
 7   <table width="95%" id="ListArea" border="0" class="t1" align="center" cellpadding="0" cellspacing="0" style="margin-top:10px; table-layout:fixed ;">
 8   <tr>
 9   <th></th>
10  <th>序号</th>
11  <th>编号</th>
12  <th>简称</th>
13  <th>性质</th>
14  <th>种类</th>
15  <th>日期</th>
16  <th></th>
17  <th></th>
18  <th>操作</th>
19  </tr>
20  </HeaderTemplate>
21  <ItemTemplate>
22  <tr class="Parent">
23  <td>
24  <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Images/QualitySafety/Open.png" Width="15" Height="15" CommandName="zhe_Repeater2" CommandArgument='<%# Eval("ID") %>' AccessKey="1" />
25  </td>
26  <td><%# Eval("ID") %></td>
27  <td><%# Eval("NO") %></td>
28  <td><%# Eval("Abbreviation") %></td>
29  <td><%# Eval("CheckProperties") %></td>
30  <td><%# Eval("CheckSpecies") %></td>
31  <td><%# Eval("CheckTime") %></td>
32  <td><%# Eval("CheckUserInfo_Name") %></td>
33  <td><%# Eval("CheckContent") %></td>
34  <td><asp:LinkButton ID="select" CommandName="select" runat="server" CommandArgument='<%#Eval("ID") %>'
35  PostBackUrl='<%#"ModefyStaff.aspx?id="+Eval("ID")%>' Text="查看进度"></asp:LinkButton></td> 
36  </tr> 
37  <tr class="child" >
38  <td colspan="9">
39  <asp:Repeater ID="childRepeater" runat="server" Visible="false" OnItemDataBound="childRepeater_ItemDataBound">
40  <HeaderTemplate>
41  <table class="tb_jieguo" style="background-color:#F2F4F8; margin-left:100px; width:90%; text-align:center" cellpadding="0" cellspacing="0" >
42  <tr>
43  <th>检查结果</th>
44  <th>图片</th>
45  </tr>
46  </HeaderTemplate>
47  <ItemTemplate>
48  <tr>
49  <td ><%# Eval("ResultDescribe") %></td>
50  <td>
51  <asp:Repeater ID="IMGRepeater" runat="server">
52  <ItemTemplate>
53  <span><img src="<%# Eval("ImgUrl") %>" /></span>
54  </ItemTemplate>
55  </asp:Repeater>
56  </td>
57  </tr>
58  </ItemTemplate>
59  <FooterTemplate>
60  </table>
61  </FooterTemplate>
62  </asp:Repeater>
63  </td>
64  </tr>
65  </ItemTemplate>
66  <FooterTemplate>
67  </table>
68  </FooterTemplate>
69  </asp:Repeater>
70  </div>
71 72  <div style=" margin-top:50px; margin:auto; text-align:center; width:80%">
73  <table style="margin:auto; width: 716px;" border="0" cellpadding="0" cellspacing="0">
74  <tr>
75  <td style="height: 19px; width:90px" align="center" >
76  <asp:LinkButton ID="lbtnFirstPage" runat="server" OnClick="lbtnFirstPage_Click" style="text-decoration: none;">首页</asp:LinkButton></td>
77  <td style="width: 90px; height: 19px" align="center" >
78  <asp:LinkButton ID="lbtnpritPage" runat="server" OnClick="lbtnpritPage_Click" style="text-decoration: none;">上一页</asp:LinkButton></td>
79  <td style="height: 19px; width:90px" align="center">
80  <asp:LinkButton ID="lbtnNextPage" runat="server" OnClick="lbtnNextPage_Click" style="text-decoration: none;">下一页</asp:LinkButton></td>
81  <td style="height: 19px; width:90px" align="center">
82  <asp:LinkButton ID="lbtnDownPage" runat="server" OnClick="lbtnDownPage_Click" style="text-decoration: none;">末页</asp:LinkButton></td>
83  <td align="center" colspan="2" class="auto-style1">
84<asp:Label ID="labPage" runat="server" Text="Label"></asp:Label>页/共<asp:Label ID="LabCountPage" runat="server" Text="Label"></asp:Label></td>
85  <td style="height: 19px; width:150px" align="center" colspan="2">
86  跳至第 <asp:DropDownList ID="ddlp" AutoPostBack="true" runat="server" Height="19px" Width="67px" OnSelectedIndexChanged="ddlp_SelectedIndexChanged"> 
87  </asp:DropDownList>88  </td>
89  </tr>
90  </table> 
91  </div> 
92  </div>
93  </form>
94  </body>

=======================后台代码=====================

  1         protected void Page_Load(object sender, EventArgs e)
  2         {
  3             if (!IsPostBack)
  4             {
  5                 /*初始化的时候给当前第几页赋值为1*/
  6                 this.labPage.Text = "1";
  7                 /*调用显示方法*/
  8                 this.contrlRepeater();
  9             }
 10           
 11 
 12         }
 13 
 14 
 15         #region 折叠功能
 16         protected void ParentRepeater_ItemCommand(object source, RepeaterCommandEventArgs e)
 17         {
 18             if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
 19             {
 20                 /*判断是否点击的折叠控件  
 21                  * 在折叠控件ImageButton里设置了CommandName这个属性
 22                  * 通过这个属性来判断是不是你指定的控件*/
 23                 if (e.CommandName == "zhe_Repeater2")
 24                 {
 25                     /*从Repeater控件里找ID为ImageButton1的ImageButton控件 
 26                        从Repeater控件里找ID为childRepeater的Repeater控件 */
 27                     ImageButton ImageButton1 = (ImageButton)e.Item.FindControl("ImageButton1");
 28                     Repeater childRepeater = (Repeater)e.Item.FindControl("childRepeater");
 29                     if (ImageButton1.AccessKey == "1") /*+展开(加号图片)   1*/
 30                     {
 31                         /*如果展开 则显示子层Repeater  
 32                          * 并改变AccessKey属性设置成0(代表收起的样式图片)
 33                          * 改变ImageUrl图片路径  存放收起(减号图片)*/
 34                         childRepeater.Visible = true;
 35                         ImageButton1.AccessKey = "0";
 36                         ImageButton1.ImageUrl = "~/Images/QualitySafety/Close.png";
 37                     }
 38                     else /*-收起(减号图片)   0*/
 39                     {
 40                         /*同上  相反*/
 41                         childRepeater.Visible = false;
 42                         ImageButton1.AccessKey = "1";
 43                         ImageButton1.ImageUrl = "~/Images/QualitySafety/Open.png";
 44                     }
 45                 }
 46             }
 47         }
 48         #endregion
 49 
 50 
 51         #region 绑定Repeater数据源
 52         /*在第一级Repeater的ItemDataBound事件中绑定第二级Repeater*/
 53         protected void ParentRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
 54         {
 55             /*触发对象的类型是DadaList里的基本行或是替换行*/
 56             if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
 57             {
 58                 /*获取当前点击行的ID
 59                  并找到第二层Repeater 如果有这个控件则进行数据源绑定*/
 60                 string preid = ((DataRowView)e.Item.DataItem).Row["ID"].ToString();//获得对应ID
 61                 Repeater childRepeater = (Repeater)e.Item.FindControl("childRepeater");//找到要绑定数据的childRepeater
 62                 if (childRepeater != null)
 63                 {
 64                     DataTable QualitySafetyInfoChildList = QualitySafetyBLL.QualitySafetyInfoChildList(preid);//获取结果信息
 65                     childRepeater.DataSource = QualitySafetyInfoChildList;
 66                     childRepeater.DataBind();
 67 
 68                 }
 69 
 70             }
 71 
 72         }
 73         /*在第二级Repeater的ItemDataBound事件中绑定第三级Repeater*/
 74         protected void childRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
 75         {
 76             if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
 77             {
 78                 /*查找第二层的ID*/
 79                 string preid = ((DataRowView)e.Item.DataItem).Row["ID"].ToString();//获得对应ID
 80                 Repeater IMGRepeater = (Repeater)e.Item.FindControl("IMGRepeater");//找到要绑定数据的IMGRepeater第三层
 81                 if (IMGRepeater != null)
 82                 {
 83                     DataTable QualitySafetyInfoIMGList = QualitySafetyBLL.QualitySafetyInfoIMGList(preid);//获取图片信息
 84                     IMGRepeater.DataSource = QualitySafetyInfoIMGList;
 85                     IMGRepeater.DataBind();
 86 
 87                 }
 88 
 89             }
 90         }
 91         #endregion
 92 
 93 
 94         #region 实现分页
 95 
 96 
 97         /*Repeater分页控制显示方法 */
 98         public void contrlRepeater()
 99         {   /*获取第一层隐患信息 每页要显示的数据*/
100             DataTable QualitySafetyInfoList = QualitySafetyBLL.QualitySafetyInfoList(Convert.ToInt32(labPage.Text));
101 
102             /*获取第一层隐患信息总数 */
103             DataTable QualitySafetyInfoListCount = QualitySafetyBLL.QualitySafetyInfoListCount();
104             PagedDataSource pds = new PagedDataSource();
105             int cup = Convert.ToInt32(this.labPage.Text); //当前页数,初始化为第1页
106             pds.DataSource = QualitySafetyInfoList.DefaultView;
107             pds.AllowPaging = true; /*true 启动分页*/
108             pds.PageSize = 6;   /*设置每页显示多少条数据*/
109             pds.CurrentPageIndex = Convert.ToInt32(this.labPage.Text) - 1;/*获取当前页的索引*/
110             /*总页数=总记录数/每页显示的数量*/
111             int pagecount = Convert.ToInt32(QualitySafetyInfoListCount.Rows.Count) / Convert.ToInt32(pds.PageSize);
112             LabCountPage.Text = pagecount.ToString(); /*总页数*/
113             labPage.Text = (pds.CurrentPageIndex + 1).ToString();/*第几页*/
114             /*第一次进来循环总页数 并向下拉框添加数据*/
115             if (!IsPostBack)
116             {
117                 for (int i = 1; i < pagecount + 1; i++)
118                 {
119                     this.ddlp.Items.Add(i.ToString());
120                 }
121 
122             }
123             try
124             {/*改变下拉框的选定值*/
125                 ddlp.SelectedValue = cup.ToString();
126          
127             }
128             catch (Exception ex)
129             {
130                 throw ex;
131             }
132 
133             /*如果当前为第一页则禁用 首页按钮和上一页按钮   否则开启按钮*/
134             if (pds.CurrentPageIndex < 1)
135             {
136                 this.lbtnpritPage.Enabled = false;
137                 this.lbtnFirstPage.Enabled = false;
138                 this.lbtnpritPage.Style["color"] = "#BCBFCE";
139                 this.lbtnFirstPage.Style["color"] = "#BCBFCE";
140             }
141             else 
142             {
143                 this.lbtnpritPage.Enabled = true;
144                 this.lbtnFirstPage.Enabled = true;
145                 this.lbtnpritPage.Style["color"] = "#0000EE";
146                 this.lbtnFirstPage.Style["color"] = "#0000EE";
147             }
148             /*如果当前为最后一页则禁用 尾页按钮和下一页按钮   否则开启按钮*/
149             if (pds.CurrentPageIndex == pagecount - 1)
150             {
151                 this.lbtnNextPage.Enabled = false;
152                 this.lbtnDownPage.Enabled = false;
153                 this.lbtnNextPage.Style["color"] = "#BCBFCE";
154                 this.lbtnDownPage.Style["color"] = "#BCBFCE";
155             }
156             else
157             {
158                 this.lbtnNextPage.Enabled = true;
159                 this.lbtnDownPage.Enabled = true;
160                 this.lbtnNextPage.Style["color"] = "#0000EE";
161                 this.lbtnDownPage.Style["color"] = "#0000EE";
162             }
163             /*绑定第一层Repeater数据源*/
164             ParentRepeater.DataSource = QualitySafetyInfoList;
165             ParentRepeater.DataBind();
166           
167         } 
168 
169         /*首页*/
170         protected void lbtnFirstPage_Click(object sender, EventArgs e)
171         {
172             if (labPage.Text != "1")
173               labPage.Text = "1";
174             else
175             {
176             Response.Write("<script language=javascript>" + "alert('已经是第一页')" + "</script>");
177             }
178             contrlRepeater();
179 
180         }
181         /*上一页*/
182         protected void lbtnpritPage_Click(object sender, EventArgs e)
183         {
184             try
185             {
186                 if (Convert.ToInt16(labPage.Text) > 1)
187                 {
188                     labPage.Text = Convert.ToString(Convert.ToInt32(labPage.Text) - 1);
189                     ddlp.SelectedValue = labPage.Text;
190                     contrlRepeater();
191                 }
192                 else 
193                 {
194                 Response.Write("<script language=javascript>" + "alert('已经是第一页')" + "</script>");
195                 }
196             }catch (Exception ex)
197             {
198             Response.Write("<script language=javascript>" + "alert('已经是第一页')" + "</script>");
199             }
200       
201         }
202         /*下一页*/
203         protected void lbtnNextPage_Click(object sender, EventArgs e)
204         {
205             try
206             {
207                 this.labPage.Text = Convert.ToString(Convert.ToInt32(labPage.Text) + 1);
208                 this.contrlRepeater();
209             }catch (Exception ex)
210             {
211             Response.Write("<script language=javascript>" + "alert('已经是最后一页')" + "</script>");
212             labPage.Text = "1";
213             contrlRepeater();
214             }
215         }
216         /*尾页*/
217         protected void lbtnDownPage_Click(object sender, EventArgs e)
218         {
219             if (labPage.Text.ToString() != LabCountPage.Text.ToString())
220             labPage.Text = LabCountPage.Text.ToString();
221             else
222             {
223             Response.Write("<script language=javascript>" + "alert('已经是最后一页')" + "</script>");
224             }
225             contrlRepeater();
226    
227         }
228 
229         protected void ddlp_SelectedIndexChanged(object sender, EventArgs e)
230         {
231             /*下拉列表框更改时激发  */
232             int page = Convert.ToInt16((ddlp.SelectedItem.Value));
233             labPage.Text = page.ToString();
234             contrlRepeater();
235 
236         }
237         #endregion

 批注:分页主要实现在于sql语句上

select   top  每页显示的记录数 *  from  表名  where  id  not   in  ( select   top  (当前的页数-1)*每页显示的记录数 id  from  表名   order   by  id  desc )  order   by  id  desc

上一篇文章      下一篇文章      查看所有文章
加:2017-11-24 23:21:46  更:2017-11-24 23:21:49 
 
  .NET新手区 最新文章
将ZIP文件添加到程序集资源文件然后在运行时
Web服务的调用
.NET创建WebService服务简单的例子
多线程编程学习笔记——任务并行库(三)
序列化和反序列化
Spring学习之路
cs代码实现控件移动TranslateTransform
Asp.net基础知识
ACdream原创群赛(11)の风神日华神专场C.神奇
SQL 存储和触发器
技术频道: 站长资讯 .NET新手区 ASP.NET C# WinForm Silverlight WCF CLR WPF XNA Visual Studio ASP.NET MVC .NET控件开发 Entity Framework WinRT/Metro Java C++ PHP Delphi Python Ruby C语言 Erlang Go Swift Scala R语言 Verilog 其它语言 架构设计 面向对象 设计模式 领域驱动设计 Html/Css JavaScript jQuery HTML5 SharePoint GIS技术 SAP Oracle ERP Dynamics CRM K2 BPM 信息安全 企业信息化其他 Android开发 iOS开发 Windows Phone Windows Mobile 其他手机开发 敏捷开发 项目与团队管理 软件工程其他 SQL Server Oracle MySQL NoSQL 其它数据库 Windows 7 Windows Server Linux
脚本语言: vbs/VBScript DOS/BAT hta htc python perl 游戏相关 VBA 远程脚本 ColdFusion ruby专题 autoit seraphzone PowerShell linux shell Lua Golang Erlang 其它教程
网站开发: CSS/HTML/Xhtml html5 CSS XML/XSLT Dreamweaver教程 经验交流 开发者乐园 Android开发资料
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 新闻资讯 小游戏 Chinese Culture 股票 三丰软件 开发 中国文化 网文精选 阅读网 看图 日历 万年历 2018年10日历
2018-10-24 3:22:15
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT知识库