1

グリッドビューの行のモードを編集モードに変更する方法を探していました..そして、1つの答えが得られました.

Gridview1.EditIndex =1;

それで、それをRowcommandイベントに入れました。最初の行のモードを変更するだけで、どの行からでも [編集] ボタンを押す必要はないと思いました。しかし驚くべきことに、編集ボタンを押したところで行モードを変更しただけです。誰でもこれがどのように機能するか教えてもらえますか?


[編集] ボタンをクリックしていますが、それは CommandName="Edit" を持つカスタム リンク ボタンであり、このコードを .cs ファイルに入れています。

 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
 {
    if (e.CommandName == "Edit")
    {
        GridView1.EditIndex = 2; // tested in VS 2008, .NET 3.5
        // Here doesn't matter, if I write 1,2 or any number, but when I click Edit button from  row, then same row only go into Edit mode.
    }
   ------
 }
4

1 に答える 1

1

プログラムで GridView を編集モードにする場合は、EditIndexプロパティを適切な行に設定します。

protected void Button1_Click(object sender, EventArgs e)
{
    GridView1.EditIndex = 1;
}

ノート:

1.) などの DataSourceControls を使用して、マークアップから gridview をバインドしている場合、SqlDataSourceを呼び出す必要はありませんGridView.Bind()

2.) DataSource プロパティを使用して実行時に GridView をバインドしている場合は、gridView を再バインドする必要があります。

Question :では、ボタンsurprisingly, its just changing row mode, where edit button is pressed.をクリックしているため、他の行を編集モードにする場合は、イベントを処理してプロパティを設定します::EditOnRowEditingNewEditIndex

<asp:GridView ID="CustomersGrIdView" 
     OnRowEditing="CustomersGridView_Editing" 
     OnRowCommand="CustomersGridView_RowCommand"
     .... />

 protected void CustomersGridView_Editing(object sender, GridViewEditEventArgs e)
    {
      e.NewEditIndex = 3; // Tested in VS 2010, Framework 4   
    }

クリックされた行のEditボタンに関係なく、編集モードでは常に 3 番目の行が表示されます。[ 行番号は 0 から始まります ]

これは、プロパティについてMSDNが述べていることです。ほとんどの場合、オプション C を使用します。EditIndex

通常、このプロパティは、特定のイベントのハンドラーが関係する次のシナリオでのみ使用されます。

a. You want the GridView control to open in edit mode for a specific row
   the first time that the page is displayed. To do this, you can set the 
   EditIndex property in the handler for the Load event of the Page class
   or of the GridView control.

b. You want to know which row was edited after the row was updated. 
   To do this, you can retrieve the row index from the EditIndex property
   in the RowUpdated event handler.

c. You are binding the GridView control to a data source by setting the 
   DataSource property programmatically. In this case you must set the 
   EditIndex property in the RowEditing and RowCancelingEdit event handlers.
于 2013-09-03T09:22:17.497 に答える