コントロールの DataSourceID を使用して SqlDataSource または ObjectDataSource など DataSource オブジェクトに WebDataGrid™ をバインドします。DataSource には条件付き一括変更機能があります。追加または削除の操作は WebDataGrid の非表示ポストバックをトリガーし、データにそれらの操作を実行します。ただし、編集の場合、 RowUpdated or RowUpdating イベントを処理しない限り WebDataGrid はポストバックしません。イベントを処理しない場合、データは次のポストバックで DataSource で更新され、原則的にエンドユーザーに一括変更機能を提供します。
データソースのイベント更新を処理してデータソースを更新する前に、必要なロジックを行で実行する方法を説明します。
Microsoft® Visual Studio® Toolbox ツールボックスから、ScriptManager コンポーネント、SqlDataSource コントロールおよび WebDataGrid コンポーネントをフォームにドラッグ アンド ドロップします。
ボタンの ID および Text プロパティを btnSave および SAVE にそれぞれ設定します。
SqlDataSource 設定:
SqlDataSource のスマート タグをクリックして、[データ ソースの構成] をクリックします。
[新しい接続] をクリック、データベース (ここでは Northwind データベース) を選択します。
[OK] をクリックして [接続を追加] ダイアログを閉じます。
[次へ] をクリックし、接続文字列の名前はデフォルトのままにしておきます。
[次へ] をクリックします。
ProductID、ProductName、および UnitPrice をProduct テーブルから選択し、[詳細] ボタンをクリックします。
INSERT、UPDATE、および Delete ステートメント次のチェックボックスをクリックします。
[OK] をクリックして [SQL 生成オプション] ダイアログを閉じます。
[次へ] をクリックします。
[終了] をクリックして [データ ソースの構成] ダイアログを閉じます。
プロパティ ウィンドウで WebDataGrid の DataSourceID プロパティを SqlDataSource1 に設定し、 DataKeyFields プロパティは ProductID に設定します。
デザイナーまたは以下のコードを使用してグリッドの CellEditing 動作を有効にします。
Visual Basic の場合:
Dim editingCore As EditingCore = Me.WebDataGrid1.Behaviors.CreateBehavior(Of EditingCore)() Me.WebDataGrid1.Behaviors.Add(editingCore) editingCore.Enabled = True Dim cellEditing As CellEditing = editingCore.Behaviors.CreateBehavior(Of CellEditing)() editingCore.Behaviors.Add(cellEditing) cellEditing.Enabled = True
C# の場合:
EditingCore editingCore = this.WebDataGrid1.Behaviors.CreateBehavior<EditingCore>(); this.WebDataGrid1.Behaviors.Add(editingCore); editingCore.Enabled = true; CellEditing cellEditing = editingCore.Behaviors.CreateBehavior<CellEditing>(); editingCore.Behaviors.Add(cellEditing); cellEditing.Enabled = true;
更新された行を緑、更新されていない行を赤で表示するには、ソースで以下のスタイルを含みます。