0

gridview を使用してテーブルを更新したかったのです。【ビジュアルスタジオ2010】

そのために私は次のことをしました:

Gridview>> EditColumns >> CommandField >> 編集、更新、キャンセル グリッドに追加されました。

Gridview>> EditTemplates >> テキストボックス名を追加 " TextBox1">>編集テンプレートの終了。

行編集イベント:

public int i;
protected void gv_RowEditing(object sender, GridViewEditEventArgs e)
{
   i=gv.EditIndex = e.NewEditIndex;
}

行更新イベント:

protected void gv_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            try
            {
                TextBox txtSymbol;

                txtSymbol = ((TextBox)(gv.Rows[e.RowIndex].Cells[3].FindControl("TextBox1")));

                con.Open();
                cmd = new SqlCommand("update temp set Symbol=@Symbol", con);
                cmd.Parameters.AddwithValue("@Symbol",txtSymbol.Text);
                cmd.ExecuteNonQuery();
                con.Close();
            }
            catch (Exception ex)
            {
            }
        }

このコードはhereから参照しました。

ここでは、行は次のようにする必要があると述べています。

txtSymbol = ((TextBox)(gv.Rows[e.RowIndex].Cells[3].FindControl("TextBox1")));

このコード化されたものはすべて機能していません。

`((TextBox)(gv.Rows[e.RowIndex].Cells[3].FindControl("TextBox1")))` 

null値を持っています。

行更新イベントで「Null 参照例外」として例外を発生させます。

私のコードで何が間違っていますか?

私が間違えているところ。

私を導いてください。

4

1 に答える 1

1
protected void gv_RowEditing(object sender, GridViewEditEventArgs e)
{
   gv.EditIndex = e.NewEditIndex;
   BindGridView();//You have  to  Bind GridView Again Here...
}

Gridview を再度バインドしない場合、Edit Index を設定した後、コントロールは gridview でバインドされません。そのため、null refrence 例外が発生します。

于 2013-05-15T12:30:23.260 に答える