随笔-86  评论-813  文章-1  trackbacks-16

[原创]jPagerBar1.2发布-jquery分页插件(一个适合Ajax+JSON+jQuery环境使用的多功能页码栏插件)(Demo、源文件下载已更新)

18个月前发布了jPagerBar1.1.1,受到了很多网友的关心和支持,也收到了很多的意见反馈,在此表示感谢!
最近腾出点时间将一些建议整理了一下,结合自己的使用体验,升级了jPagerBar的一部分功能和执行方式。
出于向下兼容的问题,本次更新没有涉及到API的修改,因此jPagerBar的API及说明可以直接参考这篇文章:http://www.cnblogs.com/szw/archive/2008/02/23/1078238.html
除了核心代码的修改以外,jPagerBar1.2为ShowPagerBar()方法添加了一个扩展方法,现在起,可以这样调用jPagerBar1.2了(以前的普通方法还是可以照常使用):

Code

在线Demo演示:http://www.senparc.com/WebTools.xhtml/JPagerBar 

ASP.NET MVC1.0 Demo下载:/Files/szw/jPagerBar.1.2.0.0-MVCv1.0.rar (内有完整源代码)

 

http://szw.cnblogs.com/
研究、探讨ASP.NET
转载请注明出处和作者,谢谢!

 

 

posted on 2009-08-27 16:52 SZW 阅读(3378) 评论(27) 编辑 收藏

评论:
#1楼 2009-08-27 16:55 | Gnie      
不错!
 回复 引用 查看   
#2楼[楼主] 2009-08-27 16:58 | SZW      
@Gnie
多谢Gnie的支持:)

 回复 引用 查看   
#3楼 2009-08-27 17:00 | 午夜游民      
nice
 回复 引用 查看   
#4楼[楼主] 2009-08-27 20:47 | SZW      
@午夜游民
谢谢:)

 回复 引用 查看   
#5楼 2009-08-28 11:24 | Q.Lee.lulu      
挺好。。
 回复 引用 查看   
#6楼[楼主] 2009-08-28 11:28 | SZW      
@Q.Lee.lulu
lulu早

 回复 引用 查看   
#7楼 2009-08-28 11:31 | 要有好的心情      
楼主有漂亮的 gridview控件 或 表格类的html代码,样式吗?

推荐一下。

 回复 引用 查看   
#8楼[楼主] 2009-08-28 11:39 | SZW      
@要有好的心情
不知道你用过Extjs没有?那里面的表格样式还是不错的,此外如果你只需要纯色背景的话,不妨参考一下Word2007中的表格样式,那里面的样式都是很规范的。

 回复 引用 查看   
#9楼 2009-12-05 15:57 | fly_to_the_winds[未注册用户]
你好,为什么下了你的1.2的版本用vs2008打开就报错呢?运行说
配置错误
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。

分析器错误消息: 未能加载文件或程序集“System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。
行 37: <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
行 38: <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
行 39: <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
行 40: <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
行 41: <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>


源文件: G:\jPagerBar.1.2.0.0-MVCv1.0\jPagerBar\web.config 行: 39

程序集加载跟踪: 下列信息有助于确定程序集“System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”无法加载的原因。
----------------------------------
请问还差什么吗?

 回复 引用   
#10楼[楼主] 2009-12-05 21:13 | SZW      
@fly_to_the_winds
System.Web.Abstractions是ASP.NET MVC中的程序集,你是不是没有装ASP.NET MVC或者引用其DLL文件?

 回复 引用 查看   
#11楼 2009-12-06 20:27 | fly_to_the_winds[未注册用户]
@SZW
额,安装了asp.net mvc和fx3.5 sp1后可以了;但突然发现看不太懂你用linq查询xml数据。。。还没学过linq;不知道你可以给个sql的作为数据源的demo吗?感激不尽......414215875@qq.com

 回复 引用   
#12楼[楼主] 2009-12-06 20:37 | SZW      
@fly_to_the_winds
这个插件适用于任何数据源,这里拿XML做数据源只是为了方便测试和移植。你只需要把获取XML数据的语句换成直接从SQL获取的语句就行了,别的没有什么两样:)

 回复 引用 查看   
#13楼 2009-12-06 21:16 | fly_to_the_winds[未注册用户]
@SZW
额,可是这里看不懂怎么用dataset来转啊

var dsLinq 是不是可以sql查询出的dataset或SqlDataReader
来代替啊?如果是的话select new DataSourceModel(){...}里面又怎么赋值呢?
sb.Append("{");
sb.Append("totalCount:");
sb.Append(totalCount.ToString());
sb.Append(",data:");
sb.Append(ToJSON(dsLinq.Skip(skipRecord).Take(pageCount).ToList()));
sb.Append("}");
------------这里又怎么构建呢?不懂ToJSON(dsLinq.Skip(skipRecord).Take(pageCount).ToList())是什么意思啊..抱歉

==============================================
XElement dsXML = CreateDataSorce();//创建并获取模拟数据源

//获取数据
var dsLinq =
(order == "ascending") ?
(from x in dsXML.Descendants("DataTemp")
where ((!string.IsNullOrEmpty(kind)) ? (x.Element("Group").Value == kind) : (x.Element("Group").Value != null))
orderby x.Element(orderBy).Value ascending
select new DataSourceModel()
{
ID = x.Element("ID").Value,
Group = x.Element("Group").Value,
Colum1 = x.Element("Colum1").Value,
Colum2 = x.Element("Colum2").Value,
Colum3 = x.Element("Colum3").Value
})
...

int totalCount = dsLinq.Count();//记录总数。在此只起到示范作用,也可从其他途径获取这个计数
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("{");
sb.Append("totalCount:");
sb.Append(totalCount.ToString());
sb.Append(",data:");
sb.Append(ToJSON(dsLinq.Skip(skipRecord).Take(pageCount).ToList()));
sb.Append("}");

 回复 引用   
#14楼[楼主] 2009-12-06 21:24 | SZW      
@fly_to_the_winds
DataSourceModel是你自己的实体类,你可以自己根据你的数据库定义一个。
至于ToJson地方法,你完全不用管里面的机制,只需要在ToJSON()的参数里面输入你想要输出的List就可以了。

 回复 引用 查看   
#15楼 2009-12-06 21:58 | fly_to_the_winds[未注册用户]
@SZW
意思是我可以这样:
string strSql =“select ... from xxx where ...";
SqlDataAdapter sda = new SqlDataAdapter(strSql, Exc_sql.con);
DataSet ds = new DataSet();
sda.Fill(ds, "OrderForm");

int totalCount = ds.Tables["OrderForm"].Rows.Count; //数据总数

System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("{");
sb.Append("totalCount:");
sb.Append(totalCount.ToString());
sb.Append(",data:");
sb.Append(ToJSON(ds)); //注意这里的ds是数据集DataSet,我是不是可以这样?而这个数据集是分页查询后的数据集,你里面原来做的就是一个分页查询后的list?ToJSON(这里我可以放分页查询后得到的dataset对吧?)
sb.Append("}");

 回复 引用   
#16楼[楼主] 2009-12-06 22:42 | SZW      
@fly_to_the_winds
对,获取数据可以这么做,只不过接下去有几个地方你那么做不太好:
1、int totalCount = ds.Tables["OrderForm"].Rows.Count; //数据总数
这里的totalCount应该是所有符合条件的总数,而不应该是被分页后的(ds.Tables["OrderForm"]里面应该是分页后的数据,一般来说还会带一个max(x)之类的,对吧)。所以你应该直接select count(*) from xxx where ...

2、ToJSON(ds))可能不会出现你期望的效果。做法有两种:
a.ToJSON(ds.Tables["OrderForm"])
b.如果a.不行的话,尝试我和Demo中一样做一个Class,将结果转换一下。

谢谢:)

 回复 引用 查看   
#17楼 2009-12-07 00:51 | fly_to_the_winds[未注册用户]
@SZW
谢谢,没想到一运行js就出错了,晕死。
<script language="javascript" type="text/javascript">
$(document).ready(function() {
TurnToPage(currentPageIndex);
}); --这里报‘null’为空或不是对象,可是我已经在页面上引用那2个js文件和css了。还是因为Handler/JY_Seller_OrderForm.ashx中没有查找到数据?奇怪了

<script type="text/javascript" language="javascript" src="../JS/JPagerBar/jquery-1.2.2.pack.js"></script>
<script type="text/javascript" language="javascript" src="../JS/JPagerBar/jPagerBar.pack.js"></script>
<link href="../JS/JPagerBar/Site.css" rel="stylesheet" type="text/css" />
<link href="../JS/JPagerBar/pagecss.css" rel="stylesheet" type="text/css" />

 回复 引用   
#18楼 2009-12-07 00:56 | fly_to_the_winds[未注册用户]
http://topic.csdn.net/u/20090625/11/998b4e56-03ef-4f74-bc8a-24098eb22bec.html?seed=640163473&r=61692605#r_61692605

----不知道这篇帖子的方法可行?将dataset.WriteXml,不知道这样之后对查询速度有影响不。。。

 回复 引用   
#19楼[楼主] 2009-12-07 11:42 | SZW      
@fly_to_the_winds
引用fly_to_the_winds:
@SZW
谢谢,没想到一运行js就出错了,晕死。
<script language="javascript" type="text/javascript">
$(document).ready(function() {
TurnToPage(currentPageIndex);
}); --这里报‘null’为空或不是对象,可是我已经在页面上引用那2个js文件和css了。还是因为Handler/JY_Seller_OrderForm.ashx中没有查找到数据?奇怪了

<script type="te...


这种错误通常是js库没有引用对,你看看客户端的js路径是否有问题。

 回复 引用 查看   
#20楼[楼主] 2009-12-07 11:44 | SZW      
@fly_to_the_winds
引用fly_to_the_winds:
http://topic.csdn.net/u/20090625/11/998b4e56-03ef-4f74-bc8a-24098eb22bec.html?seed=640163473&r=61692605#r_61692605

----不知道这篇帖子的方法可行?将dataset.WriteXml,不知道这样之后对查询速度有影响不。。。


我觉得没有必要,你直接从数据库查出来序列化成json就行了

 回复 引用 查看   
#21楼 2009-12-09 21:39 | 等你回来      
为什么我的项目部署上之后不能运行呢.老是报
C:\Program Files\IDM Computer Solutions\UltraEdit\Http:\localhost:3825中包含无效的路径

 回复 引用 查看   
#22楼 2009-12-18 14:48 | fly_to_the_winds[未注册用户]
我在vs2008中同一个页面用了3个jpagerbar,用vs运行正常,放到iis上再访问结果数据、分页都不出来了,怎么回事呢?引用路径都是正确的。。
另外jpagerbar在不同ie下js可能会失效...

 回复 引用   
#23楼[楼主] 2009-12-18 17:28 | SZW      
@fly_to_the_winds
jpagerbar可以在同一页面中存在人一多哥,并且在所有IE下面的测试都已通过,建议你可以看一下这个网页中的jpagerbar在你的IE中是否显示正确:http://www.senparc.com/WebTools.xhtml/JPagerBar

如果无法显示,可能是你IE的问题了;如果可以显示,那么很有可能是代码或者权限的问题了,你可以把你发布的代码放上来我帮你看看。谢谢:)

 回复 引用 查看   
#24楼 2009-12-22 10:41 | fly_to_the_winds[未注册用户]
o(︶︿︶)o 唉,我是在本地iis发布的
 回复 引用   
#25楼 2009-12-22 10:42 | fly_to_the_winds[未注册用户]
可以加我的qq不啊? 414215875
 回复 引用   
#26楼 2009-12-22 16:09 | fly_to_the_winds[未注册用户]
我终于找到本地问题所在了,原来我的页面申明了 var $=document.getElementById;和jquery冲突了,改了之后本地是没有问题了;但放到iis是还是死活不行,郁闷。。。。
 回复 引用   
#27楼[楼主] 2009-12-22 17:36 | SZW      
OK,已加你
 回复 引用 查看   

子曰   学不可以已

进行中的MVC项目:http://www.senparc.com/ 
在线技术解答:http://www.senparc.com/SZD.xhtml
 
《ASP.NET 3.5+SQL Server网站模块化开发全程实录》


在线解答QQ群:106230270

昵称:SZW
园龄:4年1个月
粉丝:15
关注:7
<2009年8月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

搜索

 
 

常用链接

我的标签

随笔分类(141)

随笔档案(86)

文章分类

生活中的好友

我的好友

最新评论

阅读排行榜

评论排行榜

推荐排行榜