本帖最后由 wxlcanary 于 2009-09-23 04:38:39 编辑

解决方案 »

  1.   

    gridview实现数字分页就可以了
    http://topic.csdn.net/u/20081024/16/07786039-2daf-455e-9bd9-5d9d784933ba.html
    http://topic.csdn.net/u/20090422/13/60ed2287-bc87-40ca-b0f6-ad737416517a.html
      

  2.   

    gridview使用数字分页没有办法显示上一页,下一页。这两个帖子都看了,也尝试了一下,都不成功。只要插入一下代码到aspx页,<%#Eval("Name")%> 这一行就报错。请大家再提供一个可行的解决方案。谢谢!
     <PagerTemplate>
          <table>
            <tr>
              <td style="text-align: right"> 第<asp:Label ID="lblPageIndex" runat="server" Text="<%#((GridView)Container.Parent.Parent).PageIndex + 1 %>"></asp:Label>页  ......
            </table>
    </PagerTemplate>
      

  3.   

    在网上下一个AspNetPager1控件 可以达到你的要求
      

  4.   

    AspNetPager控件也不是太理想。是不是能提供一下使用<PagerTemplate> 具体的代码?
      

  5.   

    在网上发现了这段程序,感觉是最容易实现的方法。目前有两个问题:
    1. Previous 总是显示在 1 之前。
    2. 点击 Privious 或 next 总是得到以下报错信息:Server Error in '/cms400min' Application.
    --------------------------------------------------------------------------------
    Invalid postback or callback argument.请大家帮助看看该如何修改代码。多谢!aspx 页面:
        <asp:GridView ID="GVListings" runat="server" PageSize="4" AllowPaging="True">
        </asp:GridView>aspx.vb页面:
    Partial Class TestPaging4
        Inherits System.Web.UI.Page    Dim dt As New DataTable("TestData")
        Public Const DBConnection As String = "Data Source=.;Initial Catalog=testdb;Integrated Security=SSPI"    Public Shared Function GetData() As DataSet
            Dim myConn As New SqlConnection(DBConnection)
            Dim myAdapter As New SqlDataAdapter("SELECT * FROM form_product", myConn)
            Dim TestDataSet As New DataSet
            myAdapter.Fill(TestDataSet, "TestDataSet")
            Return TestDataSet
        End Function    Protected Sub GVListings_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GVListings.PageIndexChanging
            GVListings.PageIndex = e.NewPageIndex
            GVListings.DataSource = dt
            GVListings.DataBind()
        End Sub    Protected Sub GVListings_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GVListings.RowCreated
            Dim lnkNext As System.Web.UI.WebControls.LinkButton = New System.Web.UI.WebControls.LinkButton
            Dim lnkPrev As System.Web.UI.WebControls.LinkButton = New System.Web.UI.WebControls.LinkButton
            Dim colno As Integer = 0
            If e.Row.RowType = DataControlRowType.Pager Then
                For Each t As Control In e.Row.Controls(0).Controls(0).Controls(0).Controls
                    If colno = 0 Then
                        If GVListings.PageIndex <> 0 Then
                            lnkPrev = New LinkButton
                            lnkPrev.Text = "Prev"
                            lnkPrev.ID = "Prev"
                            lnkPrev.CommandName = "Prev"
                            lnkPrev.OnClientClick = "javascript:__doPostBack('" + GVListings.UniqueID + "','Page$Prev')"
                            lnkPrev.PostBackUrl = "javascript:__doPostBack('" + GVListings.UniqueID + "','Page$Prev')"
                            t.Controls.Add(lnkPrev)
                        End If
                    ElseIf colno = e.Row.Controls(0).Controls(0).Controls(0).Controls.Count - 1 Then
                        lnkNext = New LinkButton
                        lnkNext.Text = "Next"
                        lnkNext.ID = "Next"
                        lnkNext.CommandName = "Next"
                        lnkNext.OnClientClick = "javascript:__doPostBack('" + GVListings.UniqueID + "','Page$Next')"
                        lnkNext.PostBackUrl = "javascript:__doPostBack('" + GVListings.UniqueID + "','Page$Next')"
                        t.Controls.Add(lnkNext)
                    End If                colno = colno + 1
                Next
            End If
        End Sub    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            dt = GetData().Tables(0)
            GVListings.DataSource = dt
            GVListings.DataBind()
        End Sub