2011-04-15 36 views
10

我正在使用gridview,我想使用分页。我已经设置允许分页为true,页面大小为5.我可以在gridview的底部看到数字,但是当我点击一个数字移动到各自的页面时,它会抛出一个错误消息:'GridView1'触发了未处理的事件PageIndexChanging

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

代码:

<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

您的大写锁定键被打破。 – EboMike 2011-04-15 04:44:01

+2

请勿输入大写字母。 – jonsca 2011-04-15 04:44:03

回答

22

你将不得不处理PageIndexChanging事件网格

喜欢的东西

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

} 
+1

感谢“//绑定网格”注释,这意味着您应该编写绑定网格的代码,而不仅仅是“GridView1.DataBind();” – 2013-07-31 04:58:33

1

你会需要编写 “PageIndexChanging” 事件,使其工作。为PageIndexChanging添加一个事件处理程序,您可以在其中设置GridView.CurrentPage = e.NewPage ...

1

再添加一个事件在HTML标记为pagging。

OnPageIndexChanging="GridView1_PageIndexChanging" 

现在从代码处理相同的事件背后

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    //Your code 
} 
相关问题