- PR -

DataGridで、行のデータを編集する際に、特定のセルのみ編集したい

1
投稿者投稿内容
カレー落武者
常連さん
会議室デビュー日: 2003/09/12
投稿数: 49
投稿日時: 2003-09-12 03:01
C#でWebアプリケーションを作ろうとしている者です。

DataGridを使って、データベースのテーブルの中身を表示し、特定の行を編集できるようにしたいのです。
その際、DataGridの「編集」ボタンを使用して、特定の行のデータを編集できるようにしたいのですが、その際、どうしても行の全ての列がテキストボックスとして表示されてしまうのです。行の全てのデータを変更する場合にはこれで問題無いのですが、主キーの列等、変更してほしくない列もあるので、一部の列だけ編集できるようにしたいのです。
どなたか、その方法をご存知無いでしょうか?

自分でも調べてみたのですが、列のプロパティにもそのような設定の出来る所が見当たらず、仕方なくテンプレート列を作成して自分で作るべきかと考えたのですが、それも容易では無いようです・・・。

解りにくい質問で申し訳ないのですが、どうかよろしくお願いいたします。
Rikuro
会議室デビュー日: 2003/09/04
投稿数: 12
投稿日時: 2003-09-12 09:23
VB.NET では、プロパティビルダの列の『読み取り専用』にチェックを入れることで可能です。
また、直接HTMLの <asp:BoundColumn> 内に ReadOnly="True" を追加しても同様の結果が得られます。


http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwebuiwebcontrolsboundcolumnclassreadonlytopic.asp
カレー落武者
常連さん
会議室デビュー日: 2003/09/12
投稿数: 49
投稿日時: 2003-09-12 11:27
この方法は、あらかじめデザイン時にDataGridコントロールにデータソースを関連付けて置かないといけないんですよね?
実は、私が作成しようとしているWebページは、Page_Load時にコード上でデータソースを指定して、DataGridコントロールの表示内容を決めているのです。
できるならば、コード上で操作できるようにしたいのですが、それは可能なのでしょうか?
カレー落武者
常連さん
会議室デビュー日: 2003/09/12
投稿数: 49
投稿日時: 2003-09-17 09:57
やはり、Rikuroさんがおっしゃっていた方法が正攻法のようですね。
仕様を少し変更して、これで対応させていただきました。
ちょっと手間取ったのですが、これで解決ですね。

お手数をおかけしました。
Rikuroさん、本当にありがとうございました。
ぴで
大ベテラン
会議室デビュー日: 2002/10/10
投稿数: 123
お住まい・勤務地: 東京
投稿日時: 2003-09-18 00:06
((System.Web.UI.WebControls.BoundColumn)grid.Columns[i]).ReadOnly = true;
とすれば動的に変更できますよね。
1

スキルアップ/キャリアアップ(JOB@IT)