1

ボタンフィールドのあるグリッドビューがあります。データベース内のテーブルを更新し、ボタンのクリック時にボタンの画像を変更したいと考えています。行インデックスにもアクセスできる最適なイベントは何ですか? RowCommand イベントを使用してみましたが、そのイベントから行インデックスにアクセスできません

4

3 に答える 3

2

このコードで試すことができます-に基づいてCommandArgument

void GridView_RowCommand(Object sender, GridViewCommandEventArgs e)
  {
    if(e.CommandName=="Test")
    {
      int index = Convert.ToInt32(e.CommandArgument);
      GridViewRow row = CustomersGridView.Rows[index];
    }
  }

リンク: http://msdn.microsoft.com/fr-fr/library/system.web.ui.webcontrols.gridview.rowcommand(v=vs.80).aspx

于 2012-09-25T16:06:46.087 に答える
1

asp:ButtonField使用する代わりに、asp:TemplateFieldそのasp:Button中。MyCommandCommandNameと言いますRowCommandイベント内で、これを行います

var clickedRow = (GridViewRow)((Button)sender).NamingContainer;
var clickedIndex = clickedRow.RowIndex;
于 2012-09-25T16:08:36.883 に答える
0

ここでドキュメントを確認しましたhttp://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowcommand.aspx

「注」セクション(便宜上、以下)を見ると、CommandArguementプロパティからRowIndexを取得できるはずです。

注イベントを発生させた行のインデックスを判別するには、イベントに渡されるイベント引数のCommandArgumentプロパティを使用します。ButtonFieldクラスは、CommandArgumentプロパティに適切なインデックス値を自動的に入力します。その他のコマンドボタンについては、コマンドボタンのCommandArgumentプロパティを手動で設定する必要があります。たとえば、GridViewコントロールでページングが有効になっていない場合は、CommandArgumentを<%#Container.DataItemIndex%>に設定できます。

于 2012-09-25T16:03:50.520 に答える