|
.NET TIPS DataGridコントロールで行の追加/削除およびデータ編集を禁止するには?デジタルアドバンテージ2004/01/16 |
![]() |
|
|
|
デフォルトのDataGridコントロールでは、表示されている既存のデータをユーザーが編集でき、編集したデータはそのままDataGridコントロールに反映される。また、新しいデータを入力するための行(新規行)がグリッドの末尾に表示され、ここで入力したデータもそのままDataGridコントロールに追加される。
![]() |
||||||
| デフォルトのDataGridコントロール | ||||||
| デフォルトのDataGridコントロールでは、既存行で変更したデータはDataGridコントロールに反映され、新規行で入力したデータはDataGridコントロールに追加される。 | ||||||
|
しかし、実際のDataGridコントロールの利用では、ユーザーがデータを変更したり、追加したりできないようにして、表示専用にしたい場合があるだろう。そのような場合には、DataGridコントロールでの行の追加/削除およびデータ編集を禁止することができる。
![]() |
||||||
| 行の追加/削除およびデータ編集を禁止したDataGridコントロール | ||||||
| DataGridコントロールでは、行の追加/削除、データ編集を禁止することもできる。 | ||||||
|
上図のように、DataGridコントロールで行の追加/削除やデータ編集を禁止するには、DataGridコントロールのデータソースとして設定している、DataTableクラスのビューを表すDataViewクラス(System.Data名前空間)のオブジェクトの次の3つのプロパティをfalseに指定すればよい(いずれのプロパティもデフォルトはtrueになっている)。
- AllowNewプロパティ(新規行属性)
- AllowDeleteプロパティ(行削除属性)
- AllowEditプロパティ(データ編集属性)
これらのプロパティ設定を行う具体的なコードを次に示す。なお、このコードでは、DataGridコントロールのビューとして、DataTableクラス既定のDataViewオブジェクトであるDefaultViewプロパティを使っている。
|
|
| DataGridコントロールで行の追加/削除およびデータ編集を禁止するC#のプログラム | |
|
サンプル・プログラム(C#:dgallownew.cs、VB.NET:dgallownew.vb)のダウンロード
|
前述のDataViewクラスの3つのプロパティ設定をDataGridコントロールに反映させるためには、プロパティ設定したDataViewオブジェクトをDataGridコントロールのデータソース(DataSourceプロパティ)に指定しなければならない。これには、DataGridコントロールのSetDataBindingメソッドを使う(もちろんDataSourceプロパティに直接代入することもできるが、その場合DataMemberプロパティも同時に設定する必要がある)。
もしSetDataBindingメソッドで、DataGridコントロールのデータソース(第1パラメータ)にDataSetクラス(System.Data名前空間)のオブジェクトを指定した場合は、行の追加/削除やデータ編集を禁止するプロパティは使用できない(DataGridコントロールに反映されない)。これらのプロパティをDataGridコントロールに反映させるには、そのデータソースとして必ずDataViewクラスのオブジェクトを設定する必要がある。ただし、DataTableクラスのオブジェクトをデータソースに指定した場合には、そのDataTableクラスのDafaultViewプロパティがDataGridコントロールのビューとして使われるため、行の追加/削除やデータ編集を禁止するプロパティが設定可能となる。![]()
| カテゴリ:Windowsフォーム 処理対象:DataGridコントロール 使用ライブラリ:DataGridコントロール 使用ライブラリ:DataTableクラス(System.Data名前空間) 使用ライブラリ:DataViewクラス(System.Data名前空間) 使用ライブラリ:DataSetクラス(System.Data名前空間) |
| 「.NET TIPS」 |
ホワイトペーパー(TechTargetジャパン)
- LocalConnection APIと動的なスタイリング (2010/2/9)
Webページ上の複数のSilverlightアプリ間でメッセージ通信をする方法とは? コントロールの見た目を動的に設定する方法とは? - ASP.NET MVC 2:モデルの検証 (2010/2/8)
ASP.NET MVC 2で導入される入力検証機能を使った実装を紹介。シンプルな属性の追加によるエレガントな実装が可能となっている - ASP.NETによる3階層Webアプリ「ITブック」構築 (2010/2/5)
ちょっとした改造で、あなたのWebアプリは劇的に使いやすく、かっこよくなる。まずは元となるWebアプリを標準的手法で構築 - .NET TIPS - .NET開発のテクニックとヒント集 - (2010/2/4)
− カスタムMVCビューエンジンを利用するには?(活用編)
− フォーム全体へのドッキングでつまみを表示するには?
− リストボックスでTextBlockの文字列を折り返すには?
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |









