留言簿
留言成功,请等待站长审核,谢谢支持!
2014-04-02 23:35 feng
Many Thanks. Thanks for you kind reply.
回复:不客气,谢谢支持!
2014-04-02 09:41 huangyu
老师你好,这个运行会报错是为什么呢 declare @p9 int set @p9=74 exec sp_PagingLarge @TableNames=' job_resume inner join job_personal_basicinfo on job_resume.pid=job_personal_basicinfo.pid left JOIN dbo.job_resume_education ON dbo.job_resume_education.resume_id = dbo.job_resume.resume_id left JOIN dbo.job_resume_career ON dbo.job_resume.resume_id = dbo.job_resume_career.resume_id ', @PrimaryKey=' job_resume.resume_id ', @Fields=' groupid,job_resume.resume_id,dbo.getoccupationone(job_resume.resume_id) as current_job,name,job_resume.pid,job_resume.resume_name,sex,degree,datediff(yy,birthday,getdate()) as age ,workinglife,Convert(char(10),job_resume.refreshtime,23) as refreshtime,case job_resume.language when 1 then ''cn'' else ''en'' end as lantype,name ,SUM( case when (PATINDEX(''%百度%'',companyname))>0 then 50 else 0 end ) as sums', @PageSize=20,@CurrentPage=0, @Filter=' job_resume.safe=0 ', @Group=' groupid,job_resume.resume_id,dbo.getoccupationone(job_resume.resume_id) ,name,job_resume.pid,job_resume.resume_name,sex,degree ,birthday, dbo.job_personal_basicinfo.workingLife,dbo.job_resume.refreshtime,dbo.job_resume.language ,dbo.job_resume_career.companyname, dbo.job_resume_career.occupation_desc', @Order=' refreshtime desc ,sums desc ', @RecordCount=@p9 output select @p9
回复:您好,很抱歉,这么长的sql语句实在无法看出哪里有问题,您需要自己在sql server查询分析器中进行调试检查。谢谢!
2014-04-01 17:03 mr.rookier
MvcPager 2.0 for ASP.NET MVC 4.0 不想在浏览器中看到分页的页码,需要设置哪些地方呢?
回复:您好,页索引不能隐藏,MVC中没有WebForm中的回发模式和ViewState,所以和AspNetPager不同,MvcPager分页时页索引必须通过url进行传递。谢谢!
2014-03-31 21:04 peng3
杨老师:您好!很抱歉这么晚打扰您了! protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { bindData(); } } void bindData() { string sql = "select * from CtTopics"; int RecordCount; DataSet ds = GetPage(sql, AspNetPager1.CurrentPageIndex, AspNetPager1.PageSize, out RecordCount); AspNetPager1.RecordCount = RecordCount; DataList1.DataSource = ds; DataList1.DataBind(); } public DataSet GetPage(string sql, int currentPage, int pagesize, out int recordcount) { SqlConnection con = new SqlConnection(DbHelper.strCon); SqlDataAdapter ad = new SqlDataAdapter(sql, con); DataSet ds = new DataSet(); int startRow = (currentPage - 1) * pagesize; ad.Fill(ds, startRow, pagesize, "table"); recordcount = GetPageRecord(sql); return ds; } public int GetPageRecord(string sql) { SqlConnection con = new SqlConnection(DbHelper.strCon); sql = System.Text.RegularExpressions.Regex.Replace(sql, "ORDER BY.*", ""); sql = "select count(*) from (" + sql + ") as temp"; SqlCommand cmd = new SqlCommand(sql, con); cmd.Connection.Open(); int recordcount = (int)cmd.ExecuteScalar(); return recordcount; } protected void AspNetPager1_PageChanged(object sender, EventArgs e) { bindData(); } 使用GridView能正常使用,但是DataList无法显示!
回复:您好,很抱歉,AspnetPager和您的数据绑定控件没有任何关系,所以您的DataList不显示不是AspNetPager 的问题,您需要自己设置断点进行调试来查找原因,比如检查相应的sql语句执行后是否返回了正确的数据以及您的代码是否有错,没有相关的开发环境是无法从代码中看出问题的,谢谢!
2014-03-31 12:07 ChenYi
杨老师:你好! 我之前有提交一个问题,不知道提交成功没有,现在找到根源,在使用自定义路由的分页的时候,碰到个问题,情况如下,我给自定路由中的某个参数加了正则表达式的验证以后就出现问题。路由如下: routes.MapRoute( "Flist", "{controller}/{action}-{Content}-{Keyword}-{ClassValue}-{ThreadStatus}-{Page}.html", new { controller = "Forums", action = "List", Content ="0", Keyword = "0", ClassValue = "0", ThreadStatus = "0", Page ="1" } , new { Keyword = new OptionalConstraintByRegex("[a-z0-9]+") } ); 正则表达式验证类如下: public class OptionalConstraintByRegex : IRouteConstraint { public OptionalConstraintByRegex(Regex regex) { this.Regex = regex; } public OptionalConstraintByRegex(string pattern) : this(new Regex("^(" + pattern + ")$", RegexOptions.CultureInvariant | RegexOptions.Compiled | RegexOptions.IgnoreCase)) { } public Regex Regex { get; set; } public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection) { if (routeDirection == RouteDirection.IncomingRequest) { object value = values[parameterName]; if (value == UrlParameter.Optional) return true; if (this.Regex.IsMatch(value.ToString())) return true; } return false; } } 请问杨老师,这个问题能解决吗?
回复:您好,这个问题和MvcPager没有关系,是您的路由匹配的问题,您需要对您的路由进行调试检查,推荐使用route debugger,请用nuget添加引用后进行调试。谢谢!
2014-03-31 10:59 ChenYi
杨老师:您好! 请问mvcpage不能生成a标签是怎么回事呀?调用代码如下:Html.Pager(Model, new PagerOptions { ShowPageIndexBox = true, PageIndexBoxType = PageIndexBoxType.DropDownList, ShowGoButton = false, ShowDisabledPagerItems = true, FirstPageRouteName = "Forumlist", PrevPageText = "", NextPageText = "", FirstPageText = "<", LastPageText = "»", ShowMorePagerItems = false, PagerItemsSeperator = "", CurrentPagerItemWrapperFormatString = "<a class=\"current\">{0}</a>", PageIndexParameterName = "Page", CssClass = "diggpager fr", ShowPrevNext=false }, "Forumlist", null) 生成代码如下: <div class="diggpager fr" data-firstpage="" data-maxpages="99" data-mvcpager="true" data-pageparameter="Page" data-urlformat=""><678910<a class="current">11</a>12131415» 还有就是那个js跳转页面的,能出发跳转页面,但是获取不到page值。之前功能都可以。
回复:您好,生不成分页链接一般是因为没有给指定的路由设置必须的参数,或者参数错误,导致asp.net mvc无法为根据此路由来生成链接,请调试检查。谢谢!
2014-03-31 08:41 墨白
你好!您的分页控件在区域Areas中有BUG,分页时候不能把搜索条件传递过去.
回复:您好,这应该是您给MvcPager设置的路由的问题,请检查调试路由。谢谢!
2014-03-29 23:48 feng
杨老师:您好、我想问下分页控件只查询了一次后台数据库、再点击下一页或者上一页的时候没有再去查询后台数据库吗?这个属于什么机制? 回复:您好,不太明白您的意思,您说的是缓存吗? ——是的、缓存、分页控件是不是只需要第一次查询绑定以后、在点击上一页或者下一页的就不需要每次往后台去查询数据了、只在第一次bind的时候查询一次?
回复:您好,这和分页控件没有关系,数据都是需要您自己获取的,从哪里获取以及怎么获取,是否使用缓存等等都和MvcPager没有关系,也不是MvcPager能控制的,这些控制权和实现方法都在您自己手里。谢谢!
2014-03-29 12:12 Andy
老师,您的好。 上次您说: 回复:您好,2.0版支持局部加载功能,可以只用一个View,请看这个示例:http://www.webdiyer.com/mvcpager/demo/ajaxpartialloading/。谢谢! 您这2.0版本的这个示例只有一列表,如果要有搜索功能无法实现。 谢谢!
回复:您好,这和搜索功能没有冲突,您参考一下搜索示例,两者结合起来就可以了。谢谢!
2014-03-28 17:25 innwin
首次加载页面时如果不载入MvcPager组件,在ajax搜索后载入MvcPager组件并出现分页,这时选择页面序号进行翻页时ajax会失效。如果在数据加载的部分页中加入@{Html.RegisterMvcPagerScriptResource();}即ajax会生效,但会发送很多次数据请求
回复:您好,是的,MvcPager现在无法实现通过Ajax方式加载并实现Ajax分页,因为所以事件都是在MvcPager的客户端脚本插件中绑定的,如果每次重新注册此脚本,会导致绑定很多次,现在也没有好的解决办法,以后有好的实现方法我会进行升级。谢谢!