2011-04-15 16 views
10

Estoy usando una vista de cuadrícula y quiero usar paginación. Ya he configurado permitir paginación a verdadero y tamaño de página a 5. Puedo ver los números en la base de mi vista de cuadrícula, pero cuando hago clic en un número para mover a la página respectiva, arroja un error que dice:'GridView1' evento disparado PageIndexChanging que no se manejó

The GridView 'GridView1' fired event PageIndexChanging which wasn't handled.

Código:

<asp:GridView ID="GridView1" runat="server" CellPadding="5" 
    AutoGenerateColumns="False" AllowPaging="True" DataKeyNames="contact_id" 
    onrowcancelingedit="GridView1_RowCancelingEdit" 
    onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating" 
    PageSize="5"> 
    <Columns> 
     <asp:TemplateField HeaderText="contact_id"> 
      <ItemTemplate> 
       <asp:Label ID="Label3" runat="server" Text='<%# Eval("contact_id") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="name"> 
      <ItemTemplate> 
       <asp:Label ID="Label4" runat="server" Text='<%# Eval("name") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="address"> 
      <ItemTemplate> 
       <asp:Label ID="Label5" runat="server" Text='<%# Eval("address") %>'></asp:Label><br /> 
       <asp:Label ID="Label6" runat="server" Text='<%# Eval("city") %>'></asp:Label><br /> 
       <asp:Label ID="Label7" runat="server" Text='<%# Eval("state") %>'></asp:Label><br /> 
      <asp:Label ID="Label8" runat="server" Text='<%# Eval("pincode") %>'></asp:Label> 

      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="email"> 
      <ItemTemplate> 
       <asp:Label ID="Label9" runat="server" Text='<%# Eval("email") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="mobile"> 
      <ItemTemplate> 
       <asp:Label ID="Label10" runat="server" Text='<%# Eval("mobile") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="context"> 
      <ItemTemplate> 
       <asp:Label ID="Label11" runat="server" Text='<%# Eval("context") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="status"> 
      <ItemTemplate> 
       <asp:Label ID="Label12" runat="server" Text='<%# Eval("status") %>'></asp:Label> 
      </ItemTemplate> 
      <EditItemTemplate> 
       <asp:DropDownList ID="DropDownList1" runat="server"> 
       <asp:ListItem>PENDING</asp:ListItem> 
       <asp:ListItem>OK</asp:ListItem> 
       </asp:DropDownList> 
      </EditItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Edit" ShowHeader="False"> 
      <ItemTemplate> 
       <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" 
        CommandName="Edit" Text="Edit"></asp:LinkButton> 
      </ItemTemplate> 
      <EditItemTemplate> 
       <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" 
        CommandName="Update" Text="Update"></asp:LinkButton> 
       &nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" 
        CommandName="Cancel" Text="Cancel"></asp:LinkButton> 
      </EditItemTemplate> 
      <ItemStyle CssClass="button" /> 
     </asp:TemplateField> 
    </Columns> 
    <PagerStyle HorizontalAlign="Left" VerticalAlign="Middle" /> 
</asp:GridView> 
+3

tecla Caps Lock está roto. – EboMike

+2

Por favor, NO TIPO EN CAPS. – jonsca

Respuesta

22

Usted tendrá que manejar el casoPageIndexChanging para la red

Algo así como

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.PageIndex = e.NewPageIndex; 
    //Bind grid 

} 
+1

Gracias por el comentario "// Vincula cuadrícula", lo que significa que debe escribir el código que vincula la cuadrícula no solo "GridView1.DataBind();" –

1

Usted tendría que codificar evento "PageIndexChanging" para hacer que funcione. Agregue un controlador de eventos para PageIndexChanging donde establece GridView.CurrentPage = e.NewPage ...

1

Añadir un evento más en HTML marcar para pagging.

OnPageIndexChanging="GridView1_PageIndexChanging" 

Ahora manejan mismo evento de código detrás

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    //Your code 
} 
Cuestiones relacionadas