开发者

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]
 }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜