AspNetMvc 分页控件,可自定义链接地址,开源分亨给大家

MSDNXGH 2012-04-25 03:15:20
加精
下载DLL,开始使用

先看看效果


一. 如果你使用GET方式传递参数
如http://www.CSDN.com/indx?id=1&page=5

调用方式如下:

CSS样式:
.Dcss a{padding: 4px 8px;border: 1px solid #999999;color: #000000; margin-left:1px;}
.Scss{padding: 4px 8px;}

控制器:
一:默认显示10个页数
ViewData["Page"] = new AspNetMvcPage.MVCPage(10, 500, 3, "Dcss", "Scss", "page",).RetureHtml();
二:自定义显示页数的显示个数(20个)
ViewData["Page"] = new AspNetMvcPage.MVCPage(10, 500, 3, "Dcss", "Scss", "page", 20).RetureHtml();

视图:
<%=ViewData["Page"] %>

构造函数参数说明
/// <summary>
/// 默认链接模式(合适Get的URL传递参数模式)
/// </summary>
/// <param name="url">自定义链接地址</param>
/// <param name="Number">每页显示数</param>
/// <param name="Count">数据总行数</param>
/// <param name="Page">当前页数</param>
/// <param name="DClassName">外观DIV样式(可定义A链接样式)</param>
/// <param name="SClassName">当前选择页样式</param>
/// <param name="PageName">URL分页参数名</param>
public MVCPage(int Number, int Count, int Page, string DClassName, string SClassName,string PageName)

/// <summary>
/// 默认链接模式(自定义显示分页的个数,合适Get的URL传递参数模式)
/// </summary>
/// <param name="url">自定义链接地址</param>
/// <param name="Number">每页显示数</param>
/// <param name="Count">数据总行数</param>
/// <param name="Page">当前页数</param>
/// <param name="DClassName">外观DIV样式(可定义A链接样式)</param>
/// <param name="SClassName">当前选择页样式</param>
/// <param name="PageName">URL分页参数名</param>
/// <param name="ShowPageCount">显示分页的个数</param>
public MVCPage(int Number, int Count, int Page, string DClassName, string SClassName, string PageName, int ShowPageCount)


二 如果你使用自定义路径如
http://www.CSDN/index/1/5

调用方法如下:

CSS样式:
.Dcss a{padding: 4px 8px;border: 1px solid #999999;color: #000000; margin-left:1px;}
.Scss{padding: 4px 8px;}

控制器:
一:默认显示10个页数
ViewData["Page"] = new AspNetMvcPage.MVCPage("http://www.csdn.com/index/@page/5", 10, 500, 3, "Dcss", "Scss").RetureHtml();
二:自定义显示页数的显示个数(20个)
ViewData["Page"] = new AspNetMvcPage.MVCPage("http://www.csdn.com/index/@page/5", 10, 500, 3, "Dcss", "Scss",20).RetureHtml();

视图:
<%=ViewData["Page"] %>


构造函数参数说明
/// <summary>
/// 经典模式(自定义链接模式)
/// </summary>
/// <param name="url">自定义链接地址(页数用@page代替)</param>
/// <param name="Number">每页显示数</param>
/// <param name="Count">数据总行数</param>
/// <param name="Page">当前页数</param>
/// <param name="DClassName">外观DIV样式(可定义A链接样式)</param>
/// <param name="SClassName">当前选择页样式</param>
public MVCPage(string url,int Number,int Count,int Page,string DClassName,string SClassName)

/// <summary>
/// 经典模式(自定义链接,显示分页的个数模式)
/// </summary>
/// <param name="url">自定义链接地址(页数用@page代替)</param>
/// <param name="Number">每页显示数</param>
/// <param name="Count">数据总行数</param>
/// <param name="Page">当前页数</param>
/// <param name="DClassName">外观DIV样式(可定义A链接样式)</param>
/// <param name="SClassName">当前选择页样式</param>
/// <param name="ShowPageCount">显示分页的个数</param>
public MVCPage(string url, int Number, int Count, int Page, string DClassName, string SClassName, int ShowPageCount)

...全文
2150 101 打赏 收藏 转发到动态 举报
写回复
用AI写文章
101 条回复
切换为时间正序
请发表友善的回复…
发表回复
世界因你而小 2012-08-17
  • 打赏
  • 举报
回复
收藏了
ranjiajun 2012-06-15
  • 打赏
  • 举报
回复
一载了马上去试试,顶!
Delta 2012-05-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

我顶,开源不容易啊,人影也没一个
[/Quote]收藏了。。。。
小堇 2012-05-03
  • 打赏
  • 举报
回复
代码和头像都相当的给力 呵呵
rabbit5 2012-05-02
  • 打赏
  • 举报
回复
顶一下,收藏中~~~
langmafeng 2012-05-02
  • 打赏
  • 举报
回复
无语了,为什么要在C#里拼HTML?这还是MVC吗?
写出这样的东西,说明楼主还没有真正理解Asp.Net MVC,单就你的分页本身来说,你的Model、你的View、你的Controller就完全混在一起了
qingfei280 2012-05-02
  • 打赏
  • 举报
回复
感谢楼主分享!!
MSDNXGH 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 94 楼 的回复:]

我说过了,对事不对人,你还是听不进去,认为我张嘴就喷,也罢,不说了
[/Quote]
langmafeng 2012-05-02
  • 打赏
  • 举报
回复
我说过了,对事不对人,你还是听不进去,认为我张嘴就喷,也罢,不说了
MSDNXGH 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 90 楼 的回复:]

引用 89 楼 的回复:

神马,早料到你会这样说了,

本来一个类就可以做到的事情,非要分开几个来搞,增加他的使用复杂性。我那样弄又什么不何昵?这样在使用起来,又是方便,又不伤大雅。你如果觉得一个分页就说项目背离MVC,我也没办法

这个分页重要的是内面那方法。公布源代码,就是因为,知道大家口味不一样,爱看的看,爱更改的更改。

我再次无语,如果随随便便一个需求来了就要改源代……
[/Quote]

神马,你更改了源代码,你不会保存留下来啊

我只弄了一个下午,觉得好,就自己用了,随便开源一下,你一堆道理,一堆道理去,世界靠你了

不喜勿喷

langmafeng 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 91 楼 的回复:]

有些理论得看场景来,不是生搬硬套的,需要改动的还是得改,纠结于各种理论在中国现在这种环境下,只会浪费时间。
PS:LZ写的不错。
[/Quote]
拜托,“中国国情”已经背了太多黑锅了,不要再往上扣了,这样的理由你不觉得牵强吗?
baysos 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 90 楼 的回复:]

引用 89 楼 的回复:

神马,早料到你会这样说了,

本来一个类就可以做到的事情,非要分开几个来搞,增加他的使用复杂性。我那样弄又什么不何昵?这样在使用起来,又是方便,又不伤大雅。你如果觉得一个分页就说项目背离MVC,我也没办法

这个分页重要的是内面那方法。公布源代码,就是因为,知道大家口味不一样,爱看的看,爱更改的更改。

我再次无语,如果随随便便一个需求来了就要改源代……
[/Quote]
有些理论得看场景来,不是生搬硬套的,需要改动的还是得改,纠结于各种理论在中国现在这种环境下,只会浪费时间。
PS:LZ写的不错。
langmafeng 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 89 楼 的回复:]

神马,早料到你会这样说了,

本来一个类就可以做到的事情,非要分开几个来搞,增加他的使用复杂性。我那样弄又什么不何昵?这样在使用起来,又是方便,又不伤大雅。你如果觉得一个分页就说项目背离MVC,我也没办法

这个分页重要的是内面那方法。公布源代码,就是因为,知道大家口味不一样,爱看的看,爱更改的更改。
[/Quote]
我再次无语,如果随随便便一个需求来了就要改源代码,这还能算是“控件”吗?你这个想法从根本上就违反了开放封闭原则——对扩展开放,对修改关闭

你所认为的最重要的“内(我猜是笔误,应该是里)面的那个方法”,并不是这个地方最重要的,充其量只能算是“分页逻辑”中最重要的的,而不是“分页控件”中最重要的

正确的就是正确的,错误的就是错误的,这个其实跟口味没什么关系

其实你的代码里还有很多其他的问题,比如命名不规范、方法写的太长,逻辑不清晰,我之前都没有说,是因为这些都是可以重构的,属于战术错误,而架构错误则属于战略错误,二者不可同日而语

不好意思,我对事不对人
MSDNXGH 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 88 楼 的回复:]

引用 87 楼 的回复:

他只是一个类,一个辅助类,生成HMTL代码,之所以说是MVC环境下运行,因为,它就仅仅是一个类,没有事件驱动模型,只生生成A链接代码,这么类一个,……


所有的领域模型都是抽象出来的,所以本来也就无所谓有,也无所谓无,如果我一个领域模型都不建,一样能写出程序来,一样能实现业务逻辑,只不过这样的程序到了第二天可能就只有上帝才能看懂而已

ASP.Net……
[/Quote]
神马,早料到你会这样说了,

本来一个类就可以做到的事情,非要分开几个来搞,增加他的使用复杂性。我那样弄又什么不何昵?这样在使用起来,又是方便,又不伤大雅。你如果觉得一个分页就说项目背离MVC,我也没办法

这个分页重要的是内面那方法。公布源代码,就是因为,知道大家口味不一样,爱看的看,爱更改的更改。
langmafeng 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 87 楼 的回复:]

他只是一个类,一个辅助类,生成HMTL代码,之所以说是MVC环境下运行,因为,它就仅仅是一个类,没有事件驱动模型,只生生成A链接代码,这么类一个,……
[/Quote]

所有的领域模型都是抽象出来的,所以本来也就无所谓有,也无所谓无,如果我一个领域模型都不建,一样能写出程序来,一样能实现业务逻辑,只不过这样的程序到了第二天可能就只有上帝才能看懂而已

ASP.Net MVC从根本上解决了视图与页面逻辑混淆的问题,如果我们在此模式下写出了的东西还是把这些东西混在一起的话,从根本上来讲就是与Asp.NET MVC的原意背道而驰了

辅助类一样可以分Model、View、Controller
你完全可以把分页所需的所有数据放在一个Model里
你的这个类(此时它的作用等同于Controller)只是生成这个Model的一个实例,然后通过View把Model展现出来
View可以放在DisplayTemplates里,请注意,View是最终的调用方可以改的,而且想改成什么样就应该能改成什么样,所以在你这个“控件”(之所以加引号,是因为在ASP.Net MVC框架中本没有控件这个概念)中只是对View做一个简单的实现,告诉调用方该怎么用即可
MSDNXGH 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 84 楼 的回复:]

无语了,为什么要在C#里拼HTML?这还是MVC吗?
写出这样的东西,说明楼主还没有真正理解Asp.Net MVC,单就你的分页本身来说,你的Model、你的View、你的Controller就完全混在一起了
[/Quote]
他只是一个类,一个辅助类,生成HMTL代码,之所以说是MVC环境下运行,因为,它就仅仅是一个类,没有事件驱动模型,只生生成A链接代码,这么类一个,不知道,还要怎么分Model、View、Controller昵?
dada8191678 2012-05-02
  • 打赏
  • 举报
回复
这个要顶啊~ 现在手里的项目就被分页坑住了~
蛊惑精灵 2012-05-01
  • 打赏
  • 举报
回复
谢楼主分享
new_fengzi 2012-05-01
  • 打赏
  • 举报
回复
感谢 分享!
abc10486 2012-04-30
  • 打赏
  • 举报
回复
strb.Append(CurrentIndex == 1 ? " <a class=\"first-disabled\">首页
加载更多回复(63)

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧