web-dev-qa-db-ja.com

GridViewは、処理されなかったイベントPageIndexChangingを発生させました

ページングを許可し、以下のコードを追加しましたが、エラーが発生しました。何が問題になるのか誰か知っていますか?

コード:

  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>
11
user1037134

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ドキュメントを確認してください

参考: 処理されなかったGridView起動イベントPageIndexChanging

10
Niranjan Singh

コードはOn 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>
8
Arash

試してみてください

OnPageIndexChanging="SubmitAppraisalGrid_PageIndexChanging"

の代わりに

onselectedindexchanging="SubmitAppraisalGrid_SelectedIndexChanging"


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

ステップバイステップ:

  1. デザインからグリッドビューを選択し、プロパティに移動してイベントを発生させます(PageIndexChanging)
  2. コード:gridviewname.pageindex=e.NewPageIndex;
0
Arjun Walmiki

ドロップダウンの選択したインデックス変更イベントから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);
}
0
user2247929

使用する代わりに

SubmitAppraisalGrid.PageIndex = e.NewSelectedIndex;

使用する必要があります

SubmitAppraisalGrid.PageIndex = e.NewPageIndex;

もう一度エラーが発生した場合は、エラーも投稿してください。

0
Ajay Mirge