在网上发现了这段程序,感觉是最容易实现的方法。目前有两个问题: 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
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
<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>
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