asp.net动态网站repeater控件使用及分页操作介绍
asp.net动态网站repeater控件使用及分页操作介绍
1.简单介绍
Repeater 控件是一个容器控件,可用于从网页的任何可用数据中创建自定义列表。Repeater 控件没有自己内置的呈现功能,这意味着用户必须通过创建模板来提供 Repeater 控件的布局。当网页运行时,Repeater 控件会循环通过数据源中的记录,并为每个记录呈现一个项。
2.布局
一个完整的Repeater包括:
<!--头部模板,放表格开始及第一行标题-->
<HeaderTemplate></HeaderTemplate>
<!--项目模板,会进行循环显示,放置表格第二行-->
<ItemTemplate></ItemTemplate>
<!--底部模板,放表格结束部分-->
<FooterTemplate> </FooterTemplate>
3.使用repeater进行数据绑定
代码见下
//从Person表中查出所有数据
string sqlselect = "select * from Person";
//使用自己封装好的类从数据库里查询信息,返回一个DataTable类型的数据
DataTable dt = SQLHelper.DataT(sqlselect);
//将数据绑定到repeater的数据源上
this.RptPreson.DataSource = dt;
//显示数据
this.RptPreson.DataBind();
4.repeater的删除功能
在Repeater中添加删除的LinkButton:
<asp:LinkButton ID="lbtDelete" CommandName="Delete" CommandArgument='<%#Eval("id") %>' runat="server">删除</asp:LinkButton>
给LinkButton的CommandName属性和CommandArgument属性赋值,然后通过OnCommand事件中,就可以得到CommandEventArgs类中的数据,从而到判断是哪个LinkButton被按动了。CommandEventArgs类存储了与Button事件相关的数据,并且可以在事件处理中通过CommandEventArgs类的属性来访问这些数据。说的明白些,就是当LinkButton被按动后,这个LinkButton所触发的数据都被储存到服务器的CommandEventArgs类中,访问CommandEventArgs类中的属性也就访问了被按动的LinkButton了。
简单地讲,系统通过CommandName来确定哪一类Button被按下,进而确定应该执行的操作,通过CommandArgument来确定应该对哪一条数据进行操作。
if (e.CommandName == "Delete")
{//删除行内容命令
id = int.Parse(e.CommandArgument.ToString());
string sqlDelete = "delete from Person where ID='" + Convert.ToInt32(id) + "'";
SQLHelper.OperateSql(sqlDelete);
Response.Write("<script>alert('删除成功'),location='Person.aspx'</script>");
}
5.repeater实现分页操作
//PagedDataSource 类封装 Repeater控件的属性,这些属性使之可以执行分页。
PagedDataSource pds = new PagedDataSource();
pds.DataSource = dt.DefaultView; //获取或设置数据源
pds.AllowPaging = true;//允许分页
pds.PageSize = 2;//单页显示项数
lbTotal.Text = pds.PageCount.ToString();//获取页面总数
int CurPage=1;
pds.CurrentPageIndex = CurPage - 1;////当前页数,因为从0开始,所以接收到的数减1
RptBook.DataSource = pds;//将数据绑定到repeater控件上
RptBook.DataBind();
6.repeater嵌套使用
<asp:Repeater ID="RptPerson" runat="server" OnItemDataBound="RptPerson_ItemDataBound">
<ItemTemplate>
<h2>
姓名:
<%#Eval("name") %>
</h2>
<h3>拥有的书籍</h3>
<%--嵌套Repeater,显示每个人的书籍 --%>
<asp:Repeater ID="RptBook" runat="server" OnItemCommand="RptBook_ItemCommand">
<ItemTemplate>
<%#Eval("book") %>
</ItemTemplate>
</asp:Repeater>
<%--嵌套Repeater结束--%>
<br />
</ItemTemplate>
</asp:Repeater>
后台.cs文件部分:
Repeater数据分为 Item 和AlternatingItem ,比如 第一行 数据是Item,第二行 数据是AlternatingItem ,第三行 数据是Item……….
//
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
}
//作用就是判断Reaperter的第几行
Repeater嵌套实现“楼中楼”
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
//找到外层Repeater的数据项
DataRowView rowv = (DataRowView)e.Item.DataItem;
//提取外层Repeater的数据项的ID
int ID = Convert.ToInt32(rowv["ID"]);
//找到对应ID下的Book
string select = "select * from Book where ownerid=" + ID.ToString();
//找到内嵌Repeater
Repeater rept = (Repeater)e.Item.FindControl("RptBook");
//数据绑定
rept.DataSource = SQLHelper.SelectS(select);
rept.DataBind();
}
asp.net动态网站repeater控件使用及分页操作介绍的更多相关文章
- asp.net学习之Repeater控件
asp.net学习之Repeater控件 文章摘自:http://www.cnblogs.com/shipfi/archive/2009/10/19/1585703.html Repeater控件和D ...
- ASP.NET Repeater控件实现简单分页
早上,有看MSDN,看到了 PagedDataSource 类 http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.pa ...
- ASP.NET动态添加用户控件的方法
本文实例讲述了ASP.NET动态添加用户控件的方法.分享给大家供大家参考.具体实现方法如下: 为了让用户控件能ASP.NET页面实现动态添加,首先写一个接口IGetUCable,这个接口有一个函数,返 ...
- 动态变更Repeater控件HeaderTemplate列名
本博文,Insus.NET教你动态实现变更Repeater控件HeaderTemplate列名.一般情况之下,是不需要动态变更,只有动态有Repeater控件不变情况之下,来显示多种数据源进行绑定.这 ...
- asp.net动态增加服务器端控件并提交表单
为什么要用原生的呢? 1.目的 原生出现浏览器兼容性问题 极少,不用测试多浏览兼容性 .需要考虑到市面上的其他垃圾浏览器. 2.性能不好 如果不考虑第一条 你可以换一种方式 直接上代码 .aspx页面 ...
- 动态合并Repeater控件数据列
前天Insus.NET实现<动态合并GridView数据行DataRow的列>.今天再玩玩Repeater控件,功能也是动态合并某列栏位.Repeater控件跟GridView控件一样集成 ...
- Asp.net Repeater控件的绑定与操作
由于repeater 控件具有的一个特性--循环 <ItemTemplate>的内容,Repeater 控件里的某个元素对象的绑定与获取,不像平常的,直接使用控件的 id 便可以给该控件进 ...
- repeater控件自定义Url分页带参数
repeater控件的效果图如下: 该页面实现的功能如下: 1.上下分页,(也可以带首页和末页,我只是禁掉了没用) 2.根据用户输入的指定分页索引进行跳转 3.根据筛选数据的参数进行URL分页的参数传 ...
- asp.net动态解析用户控件(UserControl)
模块化的时候需要用到: #region asp.net解析用户控件 /// <summary> /// asp.net 解析用户控件 /// </summary> /// &l ...
随机推荐
- jsp的语法
JSP指令和脚本元素指令 <%@ 指令%>声明 <%! 声明%>表达式 <%= 表达式%>代码段/脚本段 <% 代码段%>注释 <%-- 注释-- ...
- unix网络编程第2版(卷1)_第6章_同步_异步
第6章 I/O复用:select和poll函数 6.1概述 在5.12节中,我们看到TCP客户同时处理两个输入:标准输入和TCP套接口.我们遇到的问题是客户阻塞于(标准输入上的)fgets调用,而服务 ...
- Model和ModelAndView
在请求处理方法可出现和返回的参数类型中,最重要的就是Model和ModelAndView.对于MVC框架,控制器Controller执行业务逻辑,用于产生模型数据Model,而试图View则用于渲染模 ...
- JavaBean,List,Map,json格式之间转化方式
public class TestBean { private String id; private String name; private String password; public Stri ...
- Jsonp 原理简述
浏览器因为安全问题而有一个同源策略,不允许跨域请求数据.但是 js 脚本资源和图片资源还是被允许跨域请求的.在 web 开发中,遇到要跨域请求 json 数据时,可以用 jsonp 的方式来绕过浏览器 ...
- ABP官方文档翻译 7.2 Hangfire集成
Hangfire集成 介绍 ASP.NET Core集成 ASP.NET MVC 5.x集成 面板授权 介绍 Hangfire是一个综合的后台job管理器.你可以 把它集成到ABP,用来取代默认的后台 ...
- bzoj 3451: Tyvj1953 Normal [fft 点分治 期望]
3451: Tyvj1953 Normal 题意: N 个点的树,点分治时等概率地随机选点,代价为当前连通块的顶点数量,求代价的期望值 百年难遇的点分治一遍AC!!! 今天又去翻了一下<具体数学 ...
- BZOJ 2064: 分裂 [DP 状压 转化]
传送门 题意:一开始$n$块面积最后$m$块面积,面积和相等每次可以分裂或者合并,问最少几次 昨天忘发了... 不会.... 考虑最差情况,$n+m-2$所有先合并再分裂 发现只有当前后两个子集相等时 ...
- CodeChef Cards, bags and coins [DP 泛型背包]
https://www.codechef.com/problems/ANUCBC n个数字,选出其一个子集.求有多少子集满足其中数字之和是m的倍数.n $\le$ 100000,m $\le$ 100 ...
- H5弹性盒布局的使用(父容器属性)
为父容器添加display:flex/inline-flex 父容器可以使用的属性有: 1.flex-direction:决定主轴的方向 有四个属性值: row(默认值):主轴为水平方向,起点在左端. ...