【问题标题】:The GridView fired event PageIndexChanging which wasn't handledGridView 触发的事件 PageIndexChanging 未处理
【发布时间】:2012-03-16 03:56:01
【问题描述】:

我已允许分页并添加了以下代码,但出现错误。有谁知道可能是什么问题?

代码:

  protected void SubmitAppraisalGrid_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
    {
        SubmitAppraisalGrid.PageIndex = e.NewSelectedIndex;
        SubmitAppraisalGrid.DataBind();

    }

设计:

<asp:GridView ID="SubmitAppraisalGrid" runat="server" 
                AutoGenerateColumns="False" BorderWidth="0px" 
                onrowcreated="SubmitAppraisalGrid_RowCreated" ShowHeader="False" 
                style="margin-right: 0px" AllowPaging="True" PageSize="1" 
                onselectedindexchanging="SubmitAppraisalGrid_SelectedIndexChanging">
               </asp:GridView>

【问题讨论】:

    标签: c# asp.net visual-studio-2010 page-index-changed


    【解决方案1】:

    如果您已将 gridviews AllowPaging 属性设置为“true”并且不处理 PageIndexChanging 事件,则会引发此错误。

    要使用分页,请将 PageIndexChanging 事件处理程序添加到网格并将您的标记和代码更改为:

    <asp:GridView ID="SubmitAppraisalGrid" runat="server" 
                    AutoGenerateColumns="False" BorderWidth="0px" 
                    onrowcreated="SubmitAppraisalGrid_RowCreated" ShowHeader="False" 
                    style="margin-right: 0px" AllowPaging="True" PageSize="1" 
                    onselectedindexchanging="SubmitAppraisalGrid_SelectedIndexChanging"
                    OnPageIndexChanging="SubmitAppraisalGrid_PageIndexChanging">
                   </asp:GridView>
    

    ///

    protected void gvList_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        SubmitAppraisalGrid.PageIndex = e.NewPageIndex;
        SubmitAppraisalGrid.DataBind();
    
        //bindGrid(); 
        //SubmitAppraisalGrid.PageIndex = e.NewPageIndex;
        //SubmitAppraisalGrid.DataBind();
    }
    
    protected void SubmitAppraisalGrid_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
    {
       /// you selected index related logic here.
    }
    

    当您以编程方式设置 PageIndex 属性时,不会引发此事件。 查看GridView.PageIndexChanging Event的MSDN文档

    供参考: The GridView fired event PageIndexChanging which wasn't handled

    【讨论】:

    • +1 让我们了解 AllowPaging 属性。如果将其设置为“true”,也可能导致没有 PageIndexChanging 事件的问题。
    【解决方案2】:

    你的代码应该在PageIndexChanging Event

      protected void SubmitAppraisalGrid_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            SubmitAppraisalGrid.PageIndex = e.NewPageIndex;
            SubmitAppraisalGrid.DataBind();
        }
    

    设计:

    <asp:GridView ID="SubmitAppraisalGrid" runat="server" 
                AutoGenerateColumns="False" BorderWidth="0px" 
                onrowcreated="SubmitAppraisalGrid_RowCreated" ShowHeader="False" 
                style="margin-right: 0px" AllowPaging="True" PageSize="1" 
                OnPageIndexChanging="SubmitAppraisalGrid_PageIndexChanging">
               </asp:GridView>
    

    【讨论】:

      【解决方案3】:

      试试

      OnPageIndexChanging="SubmitAppraisalGrid_PageIndexChanging"
      

      而不是

      onselectedindexchanging="SubmitAppraisalGrid_SelectedIndexChanging"
      
      
      protected void SubmitAppraisalGrid_PageIndexChanging(object sender, GridViewPageEventArgs e)
      {
          SubmitAppraisalGrid.PageIndex = e.NewPageIndex;
          BindGrid();
      }
      

      【讨论】:

        【解决方案4】:

        习惯使用

        SubmitAppraisalGrid.PageIndex = e.NewSelectedIndex;
        

        你必须使用

        SubmitAppraisalGrid.PageIndex = e.NewPageIndex;
        

        如果您再次遇到错误,请也发布错误..

        【讨论】:

          【解决方案5】:

          一步一步:

          1. 从设计中选择 gridview 并转到属性并触发事件 (PageIndexChanging)
          2. 代码:gridviewname.pageindex=e.NewPageIndex;

          【讨论】:

          • 请阅读其他答案。你的似乎没有给他们增加新的东西。
          【解决方案6】:

          您需要从下拉列表的选定索引更改事件中调用Pageindex更改事件。

          protected void PageDropDownList_SelectedIndexChanged(Object sender, EventArgs e)
          {
               // Retrieve the pager row.
              GridViewRow pagerRow = SubmitAppraisalGrid.BottomPagerRow;
          
              // Retrieve the PageDropDownList DropDownList from the bottom pager row.
              DropDownList pageList = (DropDownList)pagerRow.Cells[0].FindControl("PageDropDownList");
          
              // Set the PageIndex property to display that page selected by the user.
              GridViewPageEventArgs evt = new GridViewPageEventArgs(pageList.SelectedIndex);
              SubmitAppraisalGrid_PageIndexChanging(sender, evt);
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-03-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-10-21
            • 1970-01-01
            相关资源
            最近更新 更多