2011-02-01 2 views
3

У меня есть простой запрос:Paging GridView

Dim info As New SailMembersDataContext 
Dim query = From p In info.Individuals 
GridView1.DataSource = query 
GridView1.DataBind() 

и мне было интересно, как я могу добавить подкачку на этот запрос, например 10 на странице я попытался использовать встроенный в подкачки на GridView, но это просто вызывает ошибку:

Событие GridView 'GridView1', начатое PageIndexChanging, которое не обрабатывалось.

При попытке перейти на другую страницу.

ответ

3

Хорошо, легко

Handle PageIndexChanging событие в коде позади,

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 

d ваша разметка будет такой:

<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> 
+0

Благодарим вас за помощь! отлично работает! – Houlahan

+0

@Max спасибо за добавление кода VB.Net :) –

+0

@ KenanF.Deen Нет, спасибо! Этот код решил мои проблемы, и для меня не было проблемой добавить код VB.NET, поскольку я программировал в нем. +1 – Max

0

Вам нужен метод обработки события.

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