Paging GridView
I have a simple query:
Dim info As New SailMembersDataContext
Dim query = From p In info.Individuals
GridView1.DataSource = query
GridView1.DataBind()
and i was wondering how i can add paging to this query for example 10 on a page i have tried to use the built in paging on the GridView but this just produces the error:
The GridView 'GridView1' fired event PageIndexChanging
which wasn't handled.
When tryin开发者_StackOverflow社区g to change to another page.
Ok, it is easy
Handle PageIndexChanging
event in your code behind,
C#
void GridView1_PageIndexChanging(Object sender, GridViewPageEventArgs e)
{
//For example
//Cancel the paging operation if the user attempts to navigate
//to another page while the GridView control is in edit mode.
if (GridView1.EditIndex != -1)
{
// Use the Cancel property to cancel the paging operation.
e.Cancel = true;
// Display an error message.
int newPageNumber = e.NewPageIndex + 1;
Message.Text = "Please update the record before moving to page " +
newPageNumber.ToString() + ".";
}
else
{
// Clear the error message.
Message.Text = "";
}
}
VB.NET
Private Sub GridView1_PageIndexChanging(sender As [Object], e As GridViewPageEventArgs)
'For example
'Cancel the paging operation if the user attempts to navigate
'to another page while the GridView control is in edit mode.
If GridView1.EditIndex <> -1 Then
' Use the Cancel property to cancel the paging operation.
e.Cancel = True
' Display an error message.
Dim newPageNumber As Integer = e.NewPageIndex + 1
Message.Text = "Please update the record before moving to page " & newPageNumber.ToString() & "."
Else
' Clear the error message.
Message.Text = ""
End If
End Sub
And your markup would be like this:
<asp:gridview id="GridView1"
autogeneratecolumns="true"
emptydatatext="No data available."
allowpaging="true"
autogenerateeditbutton="true"
onpageindexchanging="GridView1_PageIndexChanging"
runat="server">
<pagersettings mode="Numeric"
position="Bottom"
pagebuttoncount="10"/>
<pagerstyle backcolor="LightBlue"/>
</asp:gridview>
You need a method to handle the event.
/// <summary>
/// Handles the PageIndexChanging event.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="e">The instance containing the event data.</param>
public static void GridViewPageIndexChanging(object sender, GridViewPageEventArgs e)
{
[your application functionality here]
}
精彩评论