留言簿

我要留言
留言搜索

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="">&lt;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的客户端脚本插件中绑定的,如果每次重新注册此脚本,会导致绑定很多次,现在也没有好的解决办法,以后有好的实现方法我会进行升级。谢谢!
;