DataGrid コントロールのデータを編集するには、「ボタン列」の「編集、更新、キャンセル」列を使用してください。これらは、DataGrid コントロールのプロパティ ジェネレーターで DataGrid コントロールとして設定できます
(コントロール名 dg1 を名前として使用します)
。例 )、ページ上の dg1 コントロールにはもう 1 つの列があり、この列の各項目は「編集」というテキストを持つリンクボタン/ボタンです。
行の [編集] ボタンをクリックすると、その行は編集モードになり、[編集] ボタンは [更新] ボタンと [キャンセル] ボタン、および行内の他のすべての非読み取り専用データ ヘルパー列に置き換えられます。行は、ユーザーが編集および変更できるように、TextBox コントロール形式に変更します。
ユーザーが非読み取り専用データ列 (TextBox コントロール内) のデータを変更し、[更新] ボタンをクリックして新しい値を (通常はデータベースに) 保存し、[キャンセル] ボタンをクリックすると、行が終了します。編集モード。
「編集」ボタンをクリックして行編集モードに切り替える効果を実現するには、「更新」ボタンをクリックして新しい値を保存する効果を実現するために、dg1 の EditCommand イベント処理メソッドを記述する必要があります。 dg1 の UpdateCommand イベント処理メソッドを記述する必要があります。「キャンセル」ボタンをクリックして行編集モードを終了するには、dg1 の CancelCommand イベント処理メソッドを編集する必要があります。
1) dg1.EditCommand イベント処理メソッド - 行編集に入ります。モード
-------------------------------------------------- ----
private void dg1_EditCommand(オブジェクト ソース、System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dg1.EditItemIndex = e.Item.ItemIndex //編集する項目のインデックスを設定します。
bindingdg1(); //データを dg1 にバインドするメソッド。編集項目を設定した後、dg1を再バインドする必要があります
}
-------------------------------------------------- -------
2) dg1.CancelCommand イベント処理メソッド - 行編集モードの終了
-------------------------------------------------- -------
private void dg_CancelCommand(オブジェクト ソース、System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dg1.EditItemIndex = e.Item.ItemIndex; //編集された項目のインデックスは -1 であり、項目は編集されていないことを意味します。
bindingdg1(); //EditItemIndex をリセットした後、dg1 を再バインドする必要があります
}
-------------------------------------------------- -------
3) dg1.UpdateCommand イベント処理メソッド - 更新された値を保存する 更新された値を保存するには、まずページからこれらの新しい値を取得する必要があります。イベント処理メソッドでは、次の 3 つの主要な関数を実装する必要があります。
更新された値を取得し、それらの値を更新して、行更新モードを終了します。
通常、DataGrid コントロールに表示されるデータはデータベース テーブルから取得されるため、更新された値もデータベースに保存する必要があります。更新を実行するには、更新 SQL ステートメントまたはストアド プロシージャを使用できます。
編集モードでページの行の列の値を取得するには、いくつかのコツが必要です。バインディング列を例として挙げます。
読み取り専用のバインドされた列の値を取得します: e.Item.Cells[columnindex].Text //読み取り専用のヘルプ列は編集不可能な状態です 読み取り専用以外のバインドされた列の値を取得します: ((TextBox)(e.Item.Cells[Column Index].Controls[0])).Text //編集状態では、
通常、読み取り専用のヘルプ列がテーブルの主キー列になります。通常、更新ステートメントの where 句で使用されます。
コード例は次のとおりです。
-------------------------------------------------- --------
private void DataGrid1_UpdateCommand(オブジェクト ソース、System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//読み取り専用にバインドされた列、編集不可の状態
文字列顧客ID = e.Item.Cells[1].Text;
//非読み取り専用バインド列、編集状態
文字列会社名 = ((TextBox)(e.Item.Cells[2].Controls[0])).Text;
string city = ((TextBox)(e.Item.Cells[3].Controls[0])).Text;
String String strSql = "顧客の設定会社名 = '" + 会社名 +
"',city = '" + city + "' where customerid = '" + customerid + "'";
executeSql(strSql); //更新ステートメントを実行して
DataGrid1.EditItemIndex = -1; //行編集モードを終了します。
バインドg1();
}