DataList分页大全

09.10.14   重点:DataList的分页技巧:
绑定数据显示,这里只是简单写以下操作步骤,详细信息请参考dataList基本内容,这里主要写分页的几种方法。
 
准备工作:
 1.
DataList控件拖到页面中
 2.
使用Dreamweaver生成个种模板的表格,以及其样式
 3.
复制table代码粘贴到相应的模版中
 4.
bf层添加返回相应信息的方法
 
绑定数据:
 5.
dataList代码中,使用《%# Eval() %》的方法绑定数据,此时若 需要AJXA就添加进去既可。注意 绑定数据时,牵扯到主外键 的调用,和不同数据类型的转换可用以下方法解决:
 
主外键调用((强转类型)(Eval("字段名"))).字段名
 
类型转换((强转类型)(Eval("字段名")).toString(参数)

 分页方法一:使用DropDownList实现分页效果
 
分页思想:要显示第几页,我们就查询出第几页相对应的信息,进行显示
 1.
添加DropDownList控件
 2.
DA层里写查询第几页信息的方法,需要传入参数:第几页(PageSize,显示行数(Pageindex)
 
需要拼接字符串:查询tno不在pagesize*pageindex中的前pageindex条数据的信息: string sql = "select top  "+pageSize+" * from Teacher where tno not in(select top " + pageSize * pageIndex + " tno from teacher)";
 3.
DA里写查询共有多少行的方法,用来设定一共多少页,
  
小方法:去首行首页:int count=(int)cmd.ExacuteScalar();
 4.BF层里调用DA的总行数方法,写设定总行数的方法,
  
计算总行数的方法:(int)Math.Ceiling(count/(pageSize*1.0));
  解释:这个pageSize*1.0是把整数转换成double型,此方法是取大于当前数的最小整数。
 5.
dropDownList中添加页的项:fillPage()方法,需要使用循环添加
  
创建每一项:ListItem item=new ListItem(text,value);
  
添加项方法:dropDownList.Item.add(item);
 6.在页面添加事件中,调用数据加载方法(数据绑定方法)FillTeacher(),传入参数0显示第一页,不再鳌述。
   
dropDownList的改变事件(双击进去)中调用加载项的方法(fillPage)

 分页方法二:使用超链接实现分页
 1. 添加一个Lable控件
 2.
同上方法添加页的每一项在lableText
 3.
在把他的每一项写成一个个的超链接<a></a>此时需要使用i指定一个第几页的参数

 分页方法三:使用placeholder控件(位置预留器)
 1.
添加placeholder控件
 2.
在添加页的项的方法(fillPage)中,动态添加linkbuttonplaceholder中。方法:placeholder.Controls(button);
 3.button事件,由于这里的button时动态生成的,所以在这里我们没有办法双击进去写代码,怎样解决这个问题呢?分析:实际上,  所有的事件都时代理,所以我们可以考虑用事件代理处理这个问题,解决方法:button.Click+=new EventHandler(指向代理的方法  (Button_Click)),意思时   为每个按钮制定代理的处理方法,那么我们就可以在Button_Click方法中写代码,实现对每一页的查询  加载,这里给出相应源码,助于理解:
      void btn_Click(object sender, EventArgs e)
       {
            //
找出事件源对应的按钮对象
            LinkButton btn = sender as LinkButton;
            //
找出按钮的CommandArgument(按钮的预留参数相当于value,代表的是页号)
            int pageIndex = int.Parse(btn.CommandArgument);
            //
分页查询
            FillTeacher(pageIndex);
            //
刷新UpdatePanel1
            UpdatePanel1.Update();
       }
 4.
这样按照第一个的书写方法就可以实现分页查询了,但是有一个问题就是每一次点击按钮时页面总是刷新,为什么会这样呢?明明    我们使用了AJXA啊,怎么还实现不了一部刷新呢?因为当运行程序,先加载defult页面,在加载ScriptManager再加载显示的数据   ,在动态加载按钮,那么这时ScriptManager不认识按钮,所以他不会异步刷新,就早成了这样的效果,怎么解决呢?指定按钮页作  为一部刷新控件就可以了:ScriptManager1.RegisterAsyncPostBackControl(btn);
 
分页方法四:按钮实现的分页方式
    
那么我们现在说的这种分页方式是,现在很流行的分页方式之一,也是这里我所说到的相对比较难的方法之一,及其这两点大家一定要把这种方法学好了如果你想学好.NET的话,其实呢,前边我们只要都掌握了,其实这种就能迎刃而解了!
号,我们就正式进入这种分页方式的学习,这种方式就是:按钮和下拉列表实现的,就时上一页,下一页,跳转到第几页的方式,那么我们做出来后大家就会觉得很熟悉了!
那好就让我们来做一下先:
1.
如同前边的分页方式一样我们把数据加载上第一页的信息,fillNote()方法,
2.
在页面中添加首页,上一页,下一页,尾页(按钮),跳转到第x(下拉列表)页,共x(label)页,当前第X(label),等选项同时设置其属性ID)我这里时这样设置的:首页:btFirst
上一页:ID=btPre
下一页:ID=btNext
尾页:ID=btRtern
Label(
共多少页)ID=all
Label(
当前页):ID=nonce
3.
那我们在写个方法把下拉列表的项加载,我想通过上边的讲解,我们应该都能做出来,我就不详细的跟大家讲了,如果有不会的,那么还请在会到第一种方法就开始信息的学习吧!
4.
那么我们的页页面就做好了,我们分析操作的流程
   a.
页面加载时,一般要默认显示第一页,那么我们在第一步就固定了其显示第一页,这时的页面应该显示 第一页,下拉列表选项已经添加完成,共几页第页1页已经完成他它的显示工作。那么此时的首页和第一页应该不可用。
   b.
当点击尾页时,尾页和下一页就不会用。
   c.
当点击上一页,只要没到第一页,那么所有按钮都可用,要到了第一页,那么第一页和首页不可用。
   d.
当点击下一页,只要没到最后一页,那么所有按钮都可用,要是到了最后一夜,那么下一页和尾页就不可用。
   e.
当我们选择下拉列表显示第几页时同样以上的逻辑,那么下拉列表中的选中值页应该随我们选中而改变其显示值
   f.
所有的页面改变时,第几页的值和下拉列表的值都应随之改变
通过以上的逻辑分析,我们在写代码,那么我们的思路就清晰多了,那好,详细的代码还是有由我的it虫虫的>demo去做解释吧!在那里,上边的方法我都由实例,注释页非常详细了,希望对大家由所帮助!

这里的代码不全详细的代码请参考我做的例题一起理解,这是对它的一些主要步骤,以及方法作了必要的解释,dataList的分页方法还很多,大家有好的方法不妨拿出来大家一起分享!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值