留言簿
留言成功,请等待站长审核,谢谢支持!
2011-08-11 12:29 懒龙
首先非常感谢您的控件,节省了我很多时间,辛苦了。 反应一个情况: 在PagerBuller.cs中的GenerateUrl方法用于获取url。如果用户路由设置对分页字符有约束,比如我的分页路由中的约束为“new { page = @"[1-9][\d]{0,3}" }”,这时会导致“routeValues[_pagerOptions.PageIndexParameterName] = ScriptPageIndexName;”被约束过滤而得不到正确的结果,跳转利用的隐藏span中的链接URL地址为空,跳转功能失效。 我为这个冲突测试了半天,最终还是把源码DOWN下来检查,发现原因后其实也无关紧要,只是发上来给喜欢这个控件的说一下。 不改动控件代码的解决方法就是约束中加入ScriptPageIndexName这个特定字符串,或者去掉约束,页面对Page参数进行控制验证。
回复:您好,谢谢分享您的宝贵经验!不过我觉得路由中加约束作用不大,因为ActionResult中可以直接指定页索引数据类型(int),除非您的路由比较复杂或者特殊才需要使用约束。谢谢!
2011-08-10 18:24 汪明
杨老师你好,GridView等控件的分页功能都是一次性把所有数据查询出来,然后由分页功能剪裁实现分页,而每显示下一页,又要将所有数据重新查询一次,因此效率很低。 我曾经做一个自定义分页功能(Repeater),每次分页只查询填满一个分页的记录条数,比如每页显示15条记录,那么一次导航只查询需要的15条,这样就不怕海量数据查询分页。 请问杨老师,你的AspNetPager控件是不是有这个功能? 另外,我有一个asp.net的网站,是用于汽车配件价格查询的系统,如果你有时间,我们委托你来开发,你看可以吗?价钱我们再谈。
回复:您好,怎么获取数据和一次获取多少数据完全由程序开发人员自己决定,AspNetPager分页控件和数据源没有任何直接关系,您自己实现都可以,当然只获取当前页的数据是效率最高的方法。您要做的系统有详细的需求吗?发到我的邮箱webdiyer at gmail.com(发邮件时请替换at为@) 我看一下。谢谢!
2011-08-10 11:01 神的境界
不知道这算不算是bug,我发现Aspnetpager空间在调用PageChanging事件的顺序有点问题。 我的情况是使用了listview的itemcreated事件来c处理dataitem对象,但是这事件发生在pagechanging之前,这就造成了这时候dataitem是null的情况。正常的应该是先pagechangeing事件绑定listview,然后再是listview调用了itemcreated事件吧。
回复:PageChaning事件发生在分页之前,PageChanged事件才发生成分页之后,一般编写PageChanging事件处理程序是为了取消分页事件,若无此需求则应该用PageChanged事件。
2011-08-08 18:38 wilconhao
杨老师,您好 我这用Aspnetpager分页,一页一条数据,分为十页,我可以不可以在页面绑定后就直接跳转到第5页啊?
回复:您好,您可以直接设置CurrentPageIndex为5或者使用GoToPage方法,请参考帮助中的说明。谢谢!
2011-08-08 16:18 邹
你好,我下了您的控件 为什么Html中没有您的扩展方法呢? 不管是在cshtml文件中,还是其他地方,命名空间什么的都引用了,就是没有您的扩展方法
回复:您下载的是MvcPager吗?您添加对MvcPager.dll的引用了吗?
2011-08-07 09:24 道法自然
杨老师: 我在MVC工程中加入您的控件dll,并在viewr的web.config加入<add namespace="Webdiyer.WebControls.Mvc"/>,但无法在view中使用,与您的例子的csproj比较后,发现您的是<Reference Include="MvcPager, Version=1.5.0.28157, Culture=neutral, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\3.0\bin\MvcPager.dll</HintPath> </Reference>这一段是不同的,我的是 <Reference Include="Microsoft.CSharp" /> <Reference Include="MvcPager"> <HintPath>..\..\..\..\..\桌面\MvcPager1.5Demo3en\bin\MvcPager.dll</HintPath> </Reference> 改成你那个例子中 在智能感知中能出现,但又出现下列错误 Error 1 'System.Web.Mvc.HtmlHelper<dynamic>' has no applicable method named 'Pager' but appears to have an extension method by that name. Extension methods cannot be dynamically dispatched. Consider casting the dynamic arguments or calling the extension method without the extension method syntax. c:\Documents and Settings\Administrator\My Documents\Visual Studio 2010\Projects\MvcApplication2\MvcApplication2\Views\Home\Index.cshtml为什么呢,不会这麻烦吧,我在两台电脑中都是这样的
回复:您好,您需要好好看看帮助和示例文档,从上面的代码中看,您的Model对象应该是dynamic吧,把它传递给MvcPager当然会出错。至于引用,您只需要在VS添加对MvcPager的引用就行了,不用管csproj文件,这个是VS自动生成的,不需要也不能手工修改。谢谢!
2011-08-06 19:35 diy
您好,我做了一个带搜索的列表,用了你的 MVCPage1.5, 我现在的问题是:当我输入条件,点搜索后,显示的列表结果和分布的信息都是正确的,可是我一点分页上边的页码,发现搜索条件都丢了,请问我应该怎么做才能保存条件,谢谢了
回复:您好,ASP.NET MVC不象WebForm一样有回发机制和ViewState,查询条件一般需要用get方法将其提交到url中通过url参数传递。谢谢!
2011-08-01 16:32 方壮桂
您好,杨老师,我用了您的MVC Page控件之后,发现分页功能是很好,但是我想在上面加一个带查询条的页面,应该怎么做
回复:您好,查询是用get方法提交表单,将查询条件添加到url中即可。谢谢!
2011-07-31 00:51 User
您好,杨老师 : 请问一下 (MVCPage)分页控件, 为什么在没加Post表单功能呢,也就是说(在点击页码后,它能Post一个表单到服务器) , 因为我的查询条件太多了,用Get方式浏览器地址栏容不下, 只能用Post方式 , 但是由于分页不能提交表单 导致查询条件无法Post到服务器, 这里分页控件有变通的解决办法吗? ( 除了将条件用Session,或Cache存储服务器,这种方法我感觉太不好了,我希望每次分页时都Post一个查询条件的表单,我感觉这样更好些) 您是怎样解决带查询条件的分页的呢???
回复:您好,MvcPager的分页链接是调用ASP.NET MVC官方的相关方法生成的,没有所谓的Postback,无法生成回发方法,要自己实现的话有一定难度,很多地方要重写,代码量很大。如果查询条件太多用get方法不合适的话,您可以试试用Session或cookie来保存查询条件。谢谢!
2011-07-30 17:25 fasian
杨老师您好,请问为什么ASPNETPager手工输入转到多少页的文本框不能输入? PageIndexBoxType="TextBox"
回复:您好,具体是什么情况下不能输入?什么浏览器?什么版本?您能确认您输入的是数字吗?非数字是不能输入的。