昨天在csdn上看到一个人提出来了一种分页的需求,大致是分页控件只负责绘制总页数、上一页、下一页等信息,然后在用户翻页的时候可以触发一个js函数,然后自己实现这个js函数。并不需要提交表单,他想用ajax的方式来获取数据,但是又不想使用微软的ajax。
大概的需求就是这样的(至少我的理解是这样的),不知道吴旗娃的分页控件是不是支持这种需求。不过我的分页控件还没有涉及到ajax,原因是我还不会用ajax,那么是不是可以先实现这种需求呢?想了一下,比较简单,只要继承PageUI类,写一个UI_JS子类,在这个子类里面override几个函数就可以了。好先试一下。大约半个小时之后,ok。达到了自己想要的目的。
分页控件在这种方式下负责的事情:绘制总记录数,总页数,第几页,首页,末页,上一页,下一页,还有在翻页的时候触发一个js函数,不会触发表单提交。
private
void
SetPagerInfo()
{
//设置成自定义方式,这种方式分页控件不获取数据,需要自己获取数据。
myPager.SetRunKind = JYK.Controls.Page.myPageRunKind.Customer;
//设置成js函数的分页方式
myPager.SetUIKind = JYK.Controls.Page.myPageUIKind.JS;
//设置总记录数,需要自己得到总记录数。
myPager.SetPageRecordCount = 90; //假设有90条记录
//下面的属性就可以不用设置了。
}
{
//设置成自定义方式,这种方式分页控件不获取数据,需要自己获取数据。
myPager.SetRunKind = JYK.Controls.Page.myPageRunKind.Customer;
//设置成js函数的分页方式
myPager.SetUIKind = JYK.Controls.Page.myPageUIKind.JS;
//设置总记录数,需要自己得到总记录数。
myPager.SetPageRecordCount = 90; //假设有90条记录
//下面的属性就可以不用设置了。
}
设置这三个属性就可以了。然后需要在aspx页面里面写一个js函数来实现提取数据的代码,这个就要自己实现了。
var
PageIndex
=
0
;
function jsClick(index)
{
var a = document.getElementById( " f_Index " );
var b = document.getElementById( " f_PageCount " );
// alert(a.innerText);
PageIndex = a.innerText * 1 ;
var PagerCounr = b.innerText * 1
// index的值:a,首页;b,上一页;c,下一页;d,末页
switch (index)
{
case " a " :
alert( " 用户想翻到首页 " );
PageIndex = 1 ;
break ;
case " b " :
alert( " 用户想翻到上一页 " );
PageIndex = PageIndex - 1 ;
break ;
case " c " :
alert( " 用户想翻到下一页 " );
PageIndex = PageIndex + 1 ;
break ;
case " d " :
alert( " 用户想翻到末页 " );
PageIndex = PagerCounr;
break ;
}
if (PageIndex < 1 ) PageIndex = 1 ;
if (PageIndex > PagerCounr) PageIndex = PagerCounr;
a.innerText = PageIndex; // 设置翻页后的页数
// 这里只是一个我的想法,如果您有更好的,那么可以改成你的。
}
function jsClick(index)
{
var a = document.getElementById( " f_Index " );
var b = document.getElementById( " f_PageCount " );
// alert(a.innerText);
PageIndex = a.innerText * 1 ;
var PagerCounr = b.innerText * 1
// index的值:a,首页;b,上一页;c,下一页;d,末页
switch (index)
{
case " a " :
alert( " 用户想翻到首页 " );
PageIndex = 1 ;
break ;
case " b " :
alert( " 用户想翻到上一页 " );
PageIndex = PageIndex - 1 ;
break ;
case " c " :
alert( " 用户想翻到下一页 " );
PageIndex = PageIndex + 1 ;
break ;
case " d " :
alert( " 用户想翻到末页 " );
PageIndex = PagerCounr;
break ;
}
if (PageIndex < 1 ) PageIndex = 1 ;
if (PageIndex > PagerCounr) PageIndex = PagerCounr;
a.innerText = PageIndex; // 设置翻页后的页数
// 这里只是一个我的想法,如果您有更好的,那么可以改成你的。
}
不知道这么做是不是能能够满足他的需求。不过下一步我想让分页控件也能够实现在ajax(准确的说是xmlHttp)下自己获取数据。
老规矩,分页控件的源码和demo下载:http://www.cnblogs.com/jyk/archive/2008/07/29/1255891.html