Auto generated gridview paging index out of range

I have an auto generated gridview that requires paging (and it must be auto generated since my original sql is dynamic). I need to hide a column, which is successfully done, but when I include AllowPaging="True" in the gridview, I receive the error:

Specified argument was out of the range of valid values. Parameter name: index

I know it's because the gridview is reading the first page returned and can't the second page, but how do I go about fixing this? The snippit was done with Northwind.

Thanks
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
		<br />
		<asp:GridView ID="GridView1" OnRowDataBound="GridView1_RowDataBound" runat="server" 
		DataSourceID="SqlDataSource1" AllowPaging="True">
		</asp:GridView>
		
		<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
			SelectCommand="SELECT [ProductID], [ProductName] FROM [Alphabetical list of products] ORDER BY [ProductName]">
		</asp:SqlDataSource>
    
    </div>
    </form>
</body>
</html>
 
 
AND
 
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
		e.Row.Cells(1).Visible = False
End Sub

Open in new window

barnescoAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
madhevan_pillaiConnect With a Mentor Commented:
Hi try this
    Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
       
        If e.Row.RowType = DataControlRowType.DataRow Or e.Row.RowType = DataControlRowType.Header Then
 
            e.Row.Cells(1).Visible = False
        End If
 
    End Sub

Open in new window

0
 
madhevan_pillaiCommented:
Try this

    Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
       
        If e.Row.RowType = DataControlRowType.DataRow Or e.Row.RowType = DataControlRowType.Header Then

            e.Row.Cells(1).Visible = False
        End If

    End Sub
0
 
barnescoAuthor Commented:
Works beautifully. Thank you!
0
All Courses

From novice to tech pro — start learning today.