dataList分页方法详解

 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.同上方法添加页的每一项在lable的Text中
3.在把他的每一项写成一个个的超链接<a></a>,此时需要使用i指定一个第几页的参数

分页方法三:使用placeholder控件(位置预留器)
1.添加placeholder控件
2.在添加页的项的方法(fillPage)中,动态添加linkbutton到placeholder中。方法: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的分页方法还很多,大家有好的方法不妨拿出来大家一起分享!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值