0

そのために、showitbutton = true を追加しました。cs ファイルから gridview をバインドしました。そのために 3 つの関数を追加する必要がありますか? (編集のために、cs ファイルに 3 つの関数を追加しました。)私はインターネットから助けを得ました.しかし、いくつかの点が理解できませんでした.

--aspxで

<asp:GridView datakeyname="Id" Id ="Gridview1" onRowEditing="GridView1_RowEditing" RowCancelingEdit=" GridView1_RowCancelingEdit" onRowUpdating ="GridView1_RowUpdating" >
<column>
// hyperlink ,dataTextfield is id
// some checkboxfield.(start from column 6)
</column>

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
        //code for Binding grid
    }

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
       // for fetching value of id and checkboxfield(column 6)
  string Id= GridView1.DataKeys[e.RowIndex].Values["Id"].ToString());
   bool ischeck = (Gridview1.Rows[e.RowIndex].Cells[5].Controls[0] as checkBox).Checked;
        // code for updating grid
          GridView1.EditIndex = -1;
        //Now bind the gridview gain here
    }

protected void GridView1_RowCancelingEdit(object sender, GridViewUpdateEventArgs e)
    {
        GridView1.EditIndex = -1;
        //Now bind the gridview gain here
    }

私は正しい方向に進んでいますか?

4

1 に答える 1

0
  1. ObjectDataSourceデータバインドに(またはSqlDataSourceまたはOleDbDataSource) を使用しUpdateCommandDeleteCommand、 、 を使用している場合InsertCommand、編集/更新操作のためにこれら 3 つの関数を明示的に記述する必要はありません。これらの関数は、コード ビハインドでバインディング コードを記述する場合、または操作の前後に追加の作業を行う場合に必要です。

  2. RowEditingGridView で「編集」をクリックすると発生します。ここで、編集モードで開く行を指定しますGridView1.EditIndex = e.NewEditIndexここにコードを記述して、ユーザーがeditmodeに入る前に必要な作業を行うこともできます。たとえば、ビジネス ルールの条件を確認し、ルールが満たされていない場合は操作をキャンセルできます。

  3. RowUpdatingGridView で「保存」/「更新」をクリックすると発生します。これは、実際のデータベース操作の前に発生します。データソースにがある場合は、UpdateCommandデータベースの保存ルーチンを記述する必要はありません。それ以外の場合は、ここに記述します。

  4. DataKeysバインドされたデータを識別する「キー」を識別します。DataKeysGridView へのデータバインド時に指定します。たとえば、データベース テーブルの主キーです。この行:string Id= GridView1.DataKeys[e.RowIndex].Values["Id"].ToString());ここでは、現在の行の " Id " キー (複数のキーを持つことができます) の値を取得しています。

  5. GridView1.EditIndex = -1in updateまたはcancelは、GridView がeditmodeにならないように指定します。この値が >= 0 の場合、GridView はその行 (0 から始まるインデックス) の編集モードになります。そのため、 editmodeであってはならないことを示すために、-1 に設定します。

  6. Controls[0]そのセルの最初のコントロールを選択するために使用されます (複数のコントロールがある場合があります)。または、 を使用することもできますFindControl

于 2013-07-09T10:08:51.247 に答える