1

グリッドビューに問題があります。グリッドビューにはOnPageIndexChangingのイベントがあり、グリッドビューのページサイズは20です

最初のページでレコードが 20 に達すると、2 番目のページに移動すると、21 ~ 40 番目のレコードが 2 ページ目に移動し、グリッドビューの編集ボタンをクリックします。例: 21 番目の行をクリックします。グリッドビューに記録する

その行の EditItemTemplate は表示されていませんが、問題は発生しておらず、デバッグ時にコードが正常に実行されています。

これがGridview_RowCommandの「EditRow」の私のコードです

protected void gridview_RowCommand(object sender, GridViewCommandEventArgs e)
{

        int iActiveIndex;

        switch (e.CommandName)
        {
            case "EditRow":
                iActiveIndex = Convert.ToInt32(e.CommandArgument);

                gridview.EditIndex = iActiveIndex;

                gridview.DataSource = emp.TrainingPrograms;
                gridview.DataBind();
                break;
         }
}

これはGridview_OnPageIndexChangingのコードです

protected void gridview_OnPageIndexChanging(object sender, GridViewPageEventArgs e)
{

        gridview.DataSource = emp.TrainingPrograms;
        gridview.PageIndex = e.NewPageIndex;
        gridview.DataBind();
}

私の問題に解決策はありますか?

4

1 に答える 1

3

GridView コントロールの EditIndex プロパティは、編集する行の ID ではなく、現在のページの X 番目の行を参照します。

次のように、ページサイズによって行インデックスのモジュラスを取得することにより、適切な行を選択できます。

gridview.EditIndex = iActiveIndex % gridview.PageSize;
于 2013-01-15T09:10:23.213 に答える