【问题标题】:'GridView1' fired event PageIndexChanging which wasn't handled'GridView1' 触发了未处理的事件 PageIndexChanging
【发布时间】:2011-04-15 04:41:04
【问题描述】:

我正在使用 gridview,我想使用分页。我已经将允许分页设置为 true 并将页面大小设置为 5。我可以在我的 gridview 底部看到数字,但是当我单击一个数字移动到相应的页面时,它会抛出一个错误提示:

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>

【问题讨论】:

  • 你的大写锁定键坏了。

标签: asp.net gridview page-index-changed


【解决方案1】:

您必须为网格处理 PageIndexChanging 事件

类似

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

}

【讨论】:

  • 感谢“//绑定网格”评论,这意味着您应该编写绑定网格的代码,而不仅仅是“GridView1.DataBind();”
【解决方案2】:

如果启用分页,它将不起作用。您还需要为 PageIndexChangeEvent 编写事件处理程序。检查此链接:http://forums.asp.net/post/1177923.aspx

【讨论】:

    【解决方案3】:

    您需要对“PageIndexChanging”事件进行编码才能使其工作。为设置 GridView.CurrentPage = e.NewPage...的 PageIndexChanging 添加事件处理程序...

    【讨论】:

      【解决方案4】:

      在 HTML 标记中再添加一个事件以进行分页。

      OnPageIndexChanging="GridView1_PageIndexChanging"
      

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-12
        • 2018-03-19
        相关资源
        最近更新 更多