13

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

代码:

  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>
4

6 回答 6

13

如果您已将 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 事件的 MSDN 文档

供参考: 未处理的 GridView 触发事件 PageIndexChanging

于 2012-03-16T04:55:04.153 回答
10

您的代码应该在 On PageIndexChanging 事件中

  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>
于 2014-06-25T18:59:08.880 回答
3

try

OnPageIndexChanging="SubmitAppraisalGrid_PageIndexChanging"

instead of

onselectedindexchanging="SubmitAppraisalGrid_SelectedIndexChanging"


protected void SubmitAppraisalGrid_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    SubmitAppraisalGrid.PageIndex = e.NewPageIndex;
    BindGrid();
}
于 2012-03-16T04:06:31.500 回答
0

决定使用

SubmitAppraisalGrid.PageIndex = e.NewSelectedIndex;

你必须使用

SubmitAppraisalGrid.PageIndex = e.NewPageIndex;

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

于 2012-03-16T04:20:07.857 回答
0

一步步:

  1. 从设计中选择gridview并转到属性并触发事件(PageIndexChanging)
  2. 代码 :gridviewname.pageindex=e.NewPageIndex;
于 2012-11-09T07:23:06.490 回答
0

您需要从下拉列表的选定索引更改事件中调用 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);
}
于 2014-12-26T12:46:46.843 回答