0

Gridview と Database でレコードを削除しようとしました。boundfield ボタンを追加し、RowCommand イベントで CommandName をDeleterecordに設定しました。このレコードの主キーを取得して削除したい (主キーの値がグリッド ビューに表示されない)次のコード ブロックは、このイベントを示しています (テキスト ボックスにいくつかのデータを表示しようとしています)。

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {

            if (e.CommandName == "Deleterecord")
            {
                TextBox1.Text = GridView1.DataKeys[GridView1.SelectedIndex].Value.ToString(); 
                   //bla bla
            }
        }

私も設定しました

DataKeyName="sourceName"

グリッドビューにありますが、それは私の主キーではありません

このボタンをクリックすると、次のような例外が発生しました: インデックスが範囲外でした。負ではなく、コレクションのサイズより小さくなければなりません。パラメータ名: index この問題を解決するにはどうすればよいですか

4

1 に答える 1

0

これを使って

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "Deleterecord")
    {
         LinkButton lb = (LinkButton)e.CommandSource;
         GridViewRow gvr = (GridViewRow)lb.NamingContainer;

         TextBox1.Text = grid.DataKeys[gvr.RowIndex].Value.ToString(); 
         //bla bla
    }
}

ここは、このイベントLinkButtonを実行しているコントロールのタイプに置き換える必要がありますRowCommand

詳細はこちら

于 2012-06-18T13:27:49.683 に答える