留言簿

我要留言
留言搜索

2014-06-09 19:33  ding

@html.AjaxPager这个有包含在mvcpager.dll中吗
回复:您好,这是1.0中的扩展方法,2.0以后变为Ajax.Pager扩展。谢谢!

2014-06-09 14:30  yaojunyi

事情真是不顺利 虽然我找到了.net mvc 1.0 的pager 
但是我这项目是controller与view分离的项目 是两个不同的项目 
我不知道是不是因为这个出的错 现在浏览器提示" 未能加载类型“System.Web.Mvc.ViewPage<PagedList<View_HomeUserInfo>>”。" 我监视代码确实返回了PagedList<View_HomeUserInfo>的对象 我不知道要怎么做了
回复:应该是命名空间问题,请将System.Web.Mvc.ViewPage>改为System.Web.Mvc.ViewPage>试试。谢谢!

2014-06-09 11:26  yaojunyi

谢谢杨涛老师,我已经找到了你在codePlex的MvcPager for asp.net mvc 1.0
http://mvcpager.codeplex.com/releases/view/42914
但是为什么在你这个网站找不到旧版本呢
回复:您好,旧版本本站不提供下载了,codePlex上的就可以使用。谢谢!

2014-06-09 11:20  yaojunyi

杨老师你好,我现在在维护MVC Preview项目 ,项目基于.net 3.5框架, MVC程序集的运行时版本为.net 2.0
请问能使用你的MVC Pager控件吗
回复:您好,MvcPager 2.0以后只支持ASP.NET MVC3.0以上,不支持ASP.NET MVC 2.0。谢谢!

2014-06-07 09:24  ddsoma

杨老师你好
关于处理把Html.RegisterMvcPagerScriptResource()放在结果页面导致多次请求,我是这样解决的:
 if (!$.fn.initMvcPagers) {
        $.getScript("/Scripts/test1.js");
    }
在每次加载之前去判断下这段脚本是否已加载。这样就不会出现多次请求。你看怎么样?
回复:您好,这个方法我还没用过,这几天有空研究一下,非常感谢!

2014-05-30 13:55  游凯

杨哥,您好。
我在easyui的dialog(弹出div)中使用mvcpager时,点击页面无法以ajax方式提交,同样的设置在单独的页面中是可以的。请问是否是不支持div弹出框中使用mvcpager?如果可以,应该注意什么问题呢?
回复:您好,MvcPager暂不支持Ajax分页模式下通过Ajax进行加载,因为通过Ajax加载后无法绑定事件,这个问题比较棘手,还没有好的解决办法,谢谢!

2014-05-30 08:35  金霄

杨老师,我想追问的是,我的PageSide()过程所完成的任务,仅仅是先取数据库里的数据,如果没有数据,则不显示页面上的GridView控件,并弹出对话框,显示数据库没有内容。如果有数据的话,则对数据加工,并将加工后的数据放入一个DataTable里。上次发的一段代码(见下),就是在生成Datatable后的代码。前面是将加工后的数据放入了dtTable里。紧接着就是以下代码,这个代码应该是做分页用的。
x = dtTable.Rows.Count()
AspNetPager1.RecordCount = x
Dim startIndex As Integer = AspNetPager1.StartRecordIndex
Dim row As DataRow
 While startIndex <= AspNetPager1.EndRecordIndex    row = dtTable.Rows(startIndex - 1)
 startIndex += 1
Dim ll As Short
Dim llstr As String
 dr = dt.NewRow()
 For ll = 0 To Chemnumber + 1
   llstr = row(ll)
   dr(ll) = llstr
 Next
dt.Rows.Add(dr)
End While
 Me.AspNetPager1.PageSize = 10
 GridView1.DataSource = dt
 GridView1.DataBind()
dt.Clear()

而我点击页面上的AspnetPager控件的页码,就会调用下面AspNetPager1_PageChanged过程。这个过程仅调用了PageSite()自定义过程。
Protected Sub AspNetPager1_PageChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles AspNetPager1.PageChanged
           PageSite()//仅仅是先取数据库里的数据,如果没有数据,则不显示页面上的GridView控件,并弹出对话框,显示数据库没有内容。如果有数据的话,则对数据加工,并将加工后的数据放入一个DataTable里
              End Select
 End Sub
您说“您用Url分页,那么请不要在Page_Load方法中绑定分页数据,而应该在PageChanged事件处理程序中绑定,否则会导致数据被绑定两次,因为PageChanged事件会在每次页面加载时执行。”
而我的PageLoad里,并没绑定分页数据呵:下面是我的Page_Load过程代码。
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Session("logid") = "" Then
            Response.Redirect("Load.aspx")
        End If
        If chkTimeConstraint.Checked = False Then
            db.Disabled = True
            de.Disabled = True
        Else
            db.Disabled = False
            de.Disabled = False
        End If
        If Session("logid") = "" Then
            Response.Redirect("Load.aspx")
        Else
                     lblTotalNum.Visible = False
            lblRecorder.Visible = False
            txtTotalNum.Visible = False
        End If
End Sub

我是根据“自定义数据呈现逻辑”例子所做的呵。
回复:您好,不知道内容是否又超出了,我没看到您说的具体是什么问题,我已经有五六年不做WebForm了,一直用MVC+Entity Framework,所以您的DataRow那一段数据加工的代码,我不能确定是否正确,另外您用的是VB.Net,我只在十几年前做asp时学过一段时间的vbscript,学.net后一直用C#,所以看的比较吃力,如果您的问题是分页的数据不正确,那么需要设置断点调试一下,看在数据加工过程中各个参数及最终生成的dt中的数据是否正确。谢谢!

2014-05-29 13:52  金霄

不好意思,我上次的留言怎么不全啊,再发一次吧。
杨老师,我是我上次的提问:
(
杨老师,你好!我最近做一个程序,从数据库里将数据取出加工处理后放入一个DataTable里,然后
x = dtTable.Rows.Count()
AspNetPager1.RecordCount = x
Dim startIndex As Integer = AspNetPager1.StartRecordIndex
Dim row As DataRow
 While startIndex <= AspNetPager1.EndRecordIndex    row = dtTable.Rows(startIndex - 1)
 startIndex += 1
Dim ll As Short
Dim llstr As String
 dr = dt.NewRow()
 For ll = 0 To Chemnumber + 1
   llstr = row(ll)
   dr(ll) = llstr
 Next
dt.Rows.Add(dr)
End While
 Me.AspNetPager1.PageSize = 10
 GridView1.DataSource = dt
 GridView1.DataBind()
dt.Clear()

Protected Sub AspNetPager1_PageChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles AspNetPager1.PageChanged

PageSide() 这个是我的自定义函数
End Sub
但很奇怪,这个函数为什么在我点击页码进行翻页时,执行了这个函数后,等到PageSide()执行完毕后,又跳到这个AspNetPager1_PageChanged函数,又执行了一遍AspNetPager1_PageChanged函数,而这个函数里只有一个PageSide()过程。即AspNetPager1_PageChanged这个函数执行了两遍,为什么会这样。如何解决呢?谢谢!)
这是您上一次的回复:
(回复:您好,很抱歉,我没看懂您的代码,您的PageSide函数和分页有什么关系吗?请注意:如果您用Url分页,那么请不要在Page_Load方法中绑定分页数据,而应该在PageChanged事件处理程序中绑定,否则会导致数据被绑定两次,因为PageChanged事件会在每次页面加载时执行。谢谢!)


杨老师,我想追问的是,我的PageSide()过程所完成的任务,仅仅是先取数据库里的数据,如果没有数据,则不显示页面上的GridView控件,并弹出对话框,显示数据库没有内容。如果有数据的话,则对数据加工,并将加工后的数据放入一个DataTable里。上次发的一段代码(见下),就是在生成Datatable后的代码。前面是将加工后的数据放入了dtTable里。紧接着就是以下代码,这个代码应该是做分页用的。
x = dtTable.Rows.Count()
AspNetPager1.RecordCount = x
Dim startIndex As Integer = AspNetPager1.StartRecordIndex
Dim row As DataRow
 While startIndex <= AspNetPager1.EndRecordIndex    row = dtTable.Rows(startIndex - 1)
 startIndex += 1
Dim ll As Short
Dim llstr As String
 dr = dt.NewRow()
 For ll = 0 To Chemnumber + 1
   llstr = row(ll)
   dr(ll) = llstr
 Next
dt.Rows.Add(dr)
End While
 Me.AspNetPager1.PageSize = 10
 GridView1.DataSource = dt
 GridView1.DataBind()
dt.Clear()

而我点击页面上的AspnetPager控件的页码,就会调用下面AspNetPager1_PageChanged过程。这个过程仅调用了PageSite()自定义过程。
Protected Sub AspNetPager1_PageChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handl
回复:您好,很抱歉,留言内容有长度限制,超出会被截掉,请尽可能精简您的问题描述,不要把以前的问题完全重发一遍,谢谢!

2014-05-29 12:04  小水滴儿

杨老师是有问必答!!真是感动啊!!!

我还是有个小问题,我使用的是 AjaxForm搜索(Post)模板,我的问题是——想在搜索页面默认不加载结果页面,这个应该怎么实现??

我试了,如果把 Html.RegisterMvcPagerScriptResource();写到搜索页面,ajax请求就不生效了,翻页就会变成普通请求,如果放到结果页面,就会造成重复请求,不知道如何解决,谢谢!【上一次提问就是因为我把Html.RegisterMvcPagerScriptResource();写到了结果页面造成了页面重复请求】
回复:您好,您可以试试在页面初次加载时传递空的数据对象,也就是没有数据可分页,只有发送Ajax查询请求后才返回相应数据。谢谢!

2014-05-28 23:13  王羿

杨老师好。

我在使用您的mvc2 控件时想在一个页面里存在2个分页列表。改怎么做呢?您有相关例子吗?
回复:您好,示例中就有这样的例子,请看一下:MvcPager 分页示例 — 多个MvcPager,谢谢!
;