留言簿

我要留言
留言搜索

2011-08-18 10:52  Soulmate

杨老师 我是新手 我dll文件已经下了 也引用了 可是怎么把他放到页面中实现你例子中的那样的效果呢?
回复:您好,您把控件拖到页面中,然后编译相应的PageChanged事件处理程序,在事件处理程序中获取和显示当前页数据,请看一下示例项目中的例子,里面各种应用都有。谢谢!

2011-08-18 04:59  evan

杨老师
我尝试用这个分页控件对SQL2008R2的全文搜索的显示结果进行分页,对于这一句
PagedList<FullsearchAll_Result> student = student.ToPagedList(id ?? 1, 4);
显示错误。不知这个控件是否可被有效用于全文搜索结果的分页,请杨老师指点。我想到的一个方法是:建立一个数据库,把搜索结果存进一个表里,然后分页显示这个表。但是这样做好像太麻烦。不知这是否是唯一的办法?
回复:显示什么错误呢?分页控件和数据源没有任何直接关系,您只要能取出数据然后构造一个IPagedList或PagedList对象就可以了,请看一下控件示例项目中的例子。至于您说的把数据存进一个表再分页,这个办法是可以的,AspNetPager分页存储过程生成工具生成的分页存储过程就是用把数据填充到临时表后再获取分页数据的。

2011-08-16 11:59  aspvfp

杨老师,你好,请问下 我的数据库用的是SQL2000 主键列是uniqueidentifier类型的 用网页上的自动存储过程分页 好像老是提示类型不匹配. 有没有解决的办法呢
回复:您好,分页存储过程生成工具中用的标识字段,标识字段的类型必须是int,您用uniqueidentifier肯定会出错,因为类型不匹配。谢谢!

2011-08-15 18:30  海上明月

谢谢指点,的确如此。
回复:不客气,很高兴解决了您的问题!

2011-08-15 12:01  海上明月

杨老师,昨天试用了你的分页控件,感觉还是有缺陷。目前我发现存在这样的问题:<br/>
1)如果分页数据有10页,我已经定位到了到10页,当改变分布条件后数据只有6页,此时分页控件上显示的是新分页的最后一面(第6页)的数据,这时应该从第一页重新开始浏览,才符合用户心理,当然这个问题可以通过其它方法解决。<br/>
2)我的分页是根据页面上其它控件的状态来决定分页的,分布成功后,只要点击分页控件的导航按钮,就会改变页面上其它控件的状态,导致当前的分页条件失效。<br/>

3)即使把分页数据放到UpdatePanel中,也会刷新页面,这也可能是导致第2)个问题的原因。<br/>
基于上述问题,我只好放弃这个 控件,自己编码实现导航。希望杨老师尽快解决这些问题。谢谢。
回复:您好,这不是缺陷,而是您不了解控件或不会使用的问题,第一个问题:您重新绑定数据后需要手工设置CurrentPageIndex属性的值或使用GoToPage方法跳转到第一页,因为分页控件和数据源无关,无法知道数据源已经改变,所以不可能每次重新绑定数据后都自动跳回第一页,DataGrid和DataGridView本身也是这样的;第二和第三个问题:出现这个问题的原因是因为您使用了Url分页方式吧?请看下控件说明并了解一下Url分页方式和默认的PostBack分页方式的不同,Url分页每次分页都会打开新页面,所以ViewState和UpdatePanel都没有任何用处。

2011-08-14 16:23  blackem

杨哥,请问一下,这个页码按钮是否支持回调??
如:我点下一页或某个页码,我想再执行一个function() 可以吗?
回复:您好,控件不直接支持这样的功能!谢谢!

2011-08-14 12:57  陈建

你好,杨哥,给你提个不是BUG的问题,这控件生成HTML后会有两个&nbsp;这个对DIV+CSS布局产生很大的麻烦,建议去掉或者给他个<span>包装,还有一个问题建议搞个分割符属性,因为很多时候我都希望没个页码之间用"|"分割一下
回复:您好,您说的是MvcPager吗?默认是这样,但这些都可以通过属性控制,请看一下控件帮助PagerOptions类中带有WrapperFormatString的属性和SeparatorHtml。谢谢!

2011-08-13 01:04  鱼乐无穷

为什么会刷新?能不刷新页面分页吗?
回复:您好,您说的是AspNetPager吗?这个控件本身不支持Ajax无刷新分页,但您可以配合UpdatePanel来实现无刷新效果,控件的示例中有相关例子。至于MvcPager,它支持Ajax无刷新分页。谢谢!

2011-08-12 09:13  佳艺

我用aspNetPager控件生成了一个分页存储过程,并在些基础上修改,以符合我按条件查询的要求,但查询出来的结果总是有重复行,使用distinct无效,因为查询结果中有一个Row列,它的值是一个序号,总是不同的。请问杨老师如何解决?下面是我的存储过程代码和查询示例结果:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

--存储过程实现分页的存储过程
ALTER procedure [dbo].[partfullSelectRowsPager] 
@sortId int=0,--车系id
@brandId int=0,--品牌id
@modelId int=0,--车型id
@categoryId int=0,--一级分类id
@subcategoryId int=0,--二级分类id
@propertyId int=0,--品质id
@startIndex int,--当前起始行
@endIndex int,--当前页结束行
@docount bit,--为0返回查询结果表,为1返回查询的数据行数
@orderField nvarchar(20)='partShowOrder'--排序字段
as

declare @c1 nvarchar(100),@c2 nvarchar(100),@c3 nvarchar(100),@c nvarchar(100),@sqlText nvarchar(1000);	
if(@modelId<>0)
	set @c1='modelId='+convert(nvarchar(100),@modelId)
else
	if(@brandId<>0)
		set @c1='brandId='+convert(nvarchar(100),@brandId)
	else
		if(@sortId<>0)
			set @c1='sortId='+convert(nvarchar(100),@sortId)
		else
			set @c1=''

if(@subcategoryId<>0)
	set @c2='subcategoryId='+convert(nvarchar(100),@subcategoryId)
else
	if(@categoryId<>0)
		set @c2='categoryId='+convert(nvarchar(100),@categoryId)
	else
		set @c2=''

if(@propertyId=0)
	set @c3=''
else
	set @c3='propertyId='+convert(nvarchar(100),@propertyId)

if(@c1='' and @c2='' and @c3='')
	set @c=''
else if (@c1<>'' and @c2='' and @c3='')
	set @c='where '+@c1
else if (@c1<>'' and @c2<>'' and @c3='')
	set @c='where '+@c1+' and '+@c2
else if (@c1<>'' and @c2<>'' and @c3<>'')
	set @c='where '+@c1+' and '+@c2+' and '+@c3
else if (@c1<>'' and @c2='' and @c3<>'')
	set @c='where '+@c1+' and '+@c3
else if (@c1='' and @c2<>'' and @c3='')
	set @c='where '+@c2
else if (@c1='' and @c2<>'' and @c3<>'')
	set @c='where '+@c2+' and '+@c3
else if (@c1='' and @c2='' and @c3<>'')
	set @c='where '+@c3

if(@docount=1)--@docount=1时返回记录总数
	set @sqlText='select  count(*) from [partfull]'+@c;
else
begin
	set @sqlText='
 with temptbl as (
SELECT    ROW_NUMBER() OVER (ORDER BY '+@orderField+')AS Row, [partid],[partname],[partspecs],[partbrand],[partAttention],[partproperty],[partDate] from [partfull]'
+@c +
回复:您好,您的存储过程实在是太复杂了,而且代码不完整,我无法看出问题所在,一般来说,分页出现重复数据是因为分页用的标识字段有重复值导致的,有重复值的话这些记录就会被当成一条记录显示出来,您需要理解这一点,然后对照您的数据表结构进行适当修改。谢谢!

2011-08-11 18:43  海上明月

请问杨老师,SqlDataAdapter.Fill(起始记录,长度,DataTable)这种填充方式取出的数据是一次取出所有数据再分页,还是只取出分页的数据?
回复:您好,如果我没记错的话,这个方法是获取所有数据后再将当前页数据填充到DataTable中,所以效率不是很好,建议您用存储过程只获取和返回当前页的分页数据。谢谢!
;