上面我们谈到了在datagrid控件中显示数据,并且也谈到了在datagrid控件中显示部分数据,但在测试的过程中发现,如果数据表中有1000条记录,则datagrid控件中会对应地生成1001行,很明显,这不符合我们的习惯,所以这次我来介绍一下在datagrid对记录进行分页! 对于分页功能,有一个要求,只有在datagrid控件的数据源实现了Icollection接口的情况下启用分页功能,datareader没有实现此接口,所以要使用datatable来代替,关于datatable请参考我写的dataset初步,可在文章系统中找到。 在datagrid控件中进行分页不需要像ASP中那样,只需要一个子过程和触发此子过程的事件就行了,与ASP比起来显得简单得多。不多说了,let's Go!
代码拷贝框
[Ctrl+A 全部选择 然后拷贝] 下面来分析一下代码,这段代码与前面比起来有一部分差异,首先我们导入了一个新的名称空间<%@ import namespace="system.data"%>,因为前面说过了,要启用分页功能必须要实现Icollection接口,所以要导入system.data名称空间;然后写了三个子过程,第一个子过程在页面被初次调用时就进行databind子过程。第二个子过程就是前面说过的进行数据绑定了。关键看第三个子过程,过程名为page_changed,注意它的二个参数,当触发此子过程时,把名为mydatagrid控件的当前页面索引值改为新的索引值mydatagrid.currentpageindex=e.newpageindex,然后重新绑定数据到该控件上。 page_changed子过程在什么情况下被触发呢?所以我们在datagrid控件中重新设置了4个属性值: allowpaging="true" onpageindexchanged="page_changed" pagerstyle-mode="numericpages" pagesize="15" 第一行代码是允许进行分页,如果想实现分页功能,该属性必须设置成true,默认下是false 第二行是触发page_changed子过程的事件 第三行是设置分页导航的显示模式,这里设置是数字模式,即1 2 3 4 5 ……,默认是nextprev(上一页 下一页) 第四行是设置每页显示的记录数,这里设定是每页显示15第记录,默认为10条记录 通过这些代码就可以实现datagrid的分页功能了,当然这里会显示数据表中的所有字段,如果不想显示所有字段,请相应地把datagrid的autogeneratecolumns改成false,具体方法请参考前面的教程。 好了,实现datagrid的分页功能就已经完成了,在后面将介绍datagrid的排序功能!
出处:
责任编辑:幻想曲
上一页 ASP.NET中的datagrid控件初步 下一页 ASP.NET中的datagrid控件初步
◎进入论坛网络编程版块参加讨论
|