留言簿

我要留言
留言搜索

2010-01-25 18:03  寒羽

你好,我想问一下MVC分页控件是否可以以多列多行的形式分页呢?
回复:您好,这是数据显示的问题,和分页控件没有任何关系,数据怎么显示完全由您随意控制,多列多行您可以用table实现,请参考示例项目。谢谢!

2010-01-23 17:41  菜鸟

请教一下,怎么使用呢?例子我看了,但是还是不懂。
我先说说我是这么理解的。
1,page_load里面设定RecordCount,绑定GridView
2,控件Page_Changed里面再绑定GridView。
我认为应该是这个流程,关键是绑定的代码怎么写。
比如我的GridView绑定的sql语句是select * from b2b。分页是10条数据每页。
那么我在page_load里面和Page_Changed的SQL应该怎么写?
我都写的是select * from b2b这样肯定不对。
回复:您好,分页迭件和数据绑定控件没有任何关系,分页控件只负责生成分页控钮和引发分页事件,如果显示数据是开发人员要做的事。分页最重要的问题是获取当前页的数据,在您上面的例子中,您取的是所有的数据而不是当前页的数据,这种情况下您需要用PagedDataSource或其它办法来对取出的数据进行分页,如果您用sql server,则可以用存储过程获取当前页数据,这样分页效率更高,示例中有各种各样的分页方式,请多参考一下。谢谢!

2010-01-23 15:09  王寅成

你的数据库不能用哇,demo的数据库不能用
!826226368我qq号
回复:您好,示例项目在本站已被下载过两三万次了,还从没有人说过不能用啊!我都是测试好才发布的,如果您无法连接示例数据库的话,原因一般是没有安装sql server express版,如果您用专业版或企业版的sql server,刚需要手工附加数据库并修改web.config中的连接字符串。谢谢!

2010-01-23 14:19  small

 请教一个问题,就是我用这个控件的时候,其它的都可以,但是对新闻评论分页的时候出现错误,分页的按钮就没反应了,难道页面有其它的提交按钮,里面的分页按钮就失效了??
谢谢。。

  
回复:您好,您用什么分页方式?正确设置RecordCount属性了吗?没反应是点击后不分页还是按钮变灰不可用呢?

2010-01-22 22:56  windy

你好,抱着互相学习的态度,对于你的分页控件我说及点我的看法:
假如页数多的话,将会产生很多垃圾代码(style=".....")。
一、应该设计一个属性,就是去掉各种样式的属性(例如是ClearAllStyle=bool),
这样的干净代码适合高手定义自己的样式.
二、应该把分页信息和分页页码放在一起,这样是不是更合理呢。
下面是我改过的代码:
<div style="float:left;">
<a href="Default.aspx?page=1" style="margin-right:5px;">首页</a>
<a href="Default.aspx?page=1" style="margin-right:5px;">上一页</a>
<a href="Default.aspx?page=1" style="margin-right:5px;">1</a>
<a href="Default.aspx?page=1" style="margin-right:5px;">2</a>
<a href="Default.aspx?page=1" style="margin-right:5px;">3</a>
<span style="margin-right:5px;font-weight:Bold;color:red;">4</span>
<a disabled="disabled" style="margin-right:5px;">下一页</a>
<a disabled="disabled" style="margin-right:5px;">末页</a>
</div>
<div style="width:200px;float:left;">
	Page 7 of 10
</div>
下面是我建议的代码:
head之间动态Register Css样式表
style
{
	#AspNetPager1{float:left;} //这里是整个分页控件的样式(可以在属性里设置)
	#AspNetPager1 a{padding-right:5px;} //这里是可用页码的样式(可以在属性里设置)
	.AspNetDisabled{disabled:disabled;}//这里是不可点击的链接的样式(可以在属性里设置)
	.AspNetInfo{width:200px;float:left;} //这里是分页信息的样式
}
<div id="AspNetPager1"> //这里动态生成唯一的ClientID
<a href="Default.aspx?page=1">首页</a>
<a href="Default.aspx?page=1">上一页</a>
<a href="Default.aspx?page=1">1</a>
<a href="Default.aspx?page=1">2</a>
<a href="Default.aspx?page=1">3</a>
<span class="AspNetDisabled">4</span>
<span class="AspNetDisabled">下一页</span>
<span class="AspNetDisabled">末页</span>
<span class="AspNetInfo">Page 7 of 10</span>
</div>
回复:您好,一、那不是干什么垃圾代码,那只是设置分页元素间隔的css样式,如果您没有指定其它样式的话,默认只有margin-right:5px。至于自定义的样式,AspNetPager有很多属性可以让您应用这些样式,属性名后带有CSS或Style的属性都是。二、现在的分页信息和页码链接区的显示方式不就和您的方法完全一样吗?而且除了div外,还支持用Table布局。谢谢您的建议和支持!

2010-01-21 21:23  shglc

作者您好!我使用您开发的控件进行url分页时遇到一个问题,敬请指正!
我的分页获取数据的方法是根据currentindex和pagesize属性来获得的,此方法同事返回recordCount.我在page_chaged方法中调用此方法。如果我不在pageload的时候给recordCount赋值的话,url分页不管点第几页都是显示第一页的数据,页码也不变换。但是我在page_chaged调用分页获取数据方法之后给recountCount赋值了之后才绑定的数据。请问为什么必须在pageload的时候给recordCount赋值才有效,在page_chaged中赋值为什么无效?谢谢
回复:您好,您的问题就在于分页和获取RecordCount属性值用了同一个方法导致的,切记在分页之前,RecordCount必须已经赋值,因为分页时很多其它属性的值都是通过RecordCount和PageSize计算出来的,如果在分页时才获取并设置RecordCount属性,那控件就会以为当前没有数据,因此永远只显示第一页。谢谢!

2010-01-21 15:54  sunny

吴旗兄,你好,刚试用了一下你的分页控件(AspNetPager V7.3版本),确实很棒,在设置的时候发现一个问题:
设置页索引文本或下拉框时,如果是 文本输入框 的话,会导致自定义信息区和导航按钮不在同一水平线上,截图:
http://images.cnblogs.com/cnblogs_com/wf5360308/106546/r_aspnetpaterBug.jpg
也可能是我哪里没有设置好,忘告知,先谢了

Email:wf5360308@126.com
回复:您好,您可以用table布局,设置LayoutType为Table即可。

2010-01-21 10:48  pldu

分页使用了updatepanel后,出现两次绑定数据的情况,如果不在pagechanged中绑定,则不能更新页码。如果不在Page_load中绑定数据,则repeater数据又不能更新。这是为什么?谢谢!
回复:您用了url分页吗?或者使用Postback分页但没有将绑定代码放在if(!IsPostBack)块中?

2010-01-20 18:01  txy

您好  您告诉我 您研究过的经典的代码吗?谢谢
回复:您好,很惭愧,已经很长时间没系统地研究过什么经典代码了,看的都是一些零零碎碎的东西。谢谢!

2010-01-20 10:53  lspcieee

关于分页控件,UrlRewritePattern属性建议:
这种条件下:
当我的url重写页面是xinwen/list1.aspx
重写到得实际页面是Content/news/list.aspx?page=1

如果设置UrlRewritePattern属性为“list{0}.aspx”,得到的地址却是“/Content/news/list1.aspx”

估计是相对获取当前访问路径的方法问题,或许用 HttpContext.Current.Request.RawUrl来获取更合适

当然我后来通过UrlRewritePattern赋值为"~/xinwen/list{0}.aspx"得到解决。


提意见只是希望越来越完善,我们的闪睿企业网站管理系统一直用你的控件,再次感谢!
回复:您好,重写的起始路径是当前页面的路径,这个路径不需要获取,重写后的路径是直接用ResolveUrl方法生成的,ResolveUrl方法支持用~取代根路径,所以您可以用~来实现绝对路径的重写。谢谢支持!
;