- - PR -
GridViewの編集可能列を動的に変更
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-10-18 13:40
こんにちは。ASP.NET2.0(C#)で開発しています。
GridViewで行の編集ボタンを押された時に編集できる列を動的に変更しようとしています。 動的で無い場合は、aspxの方で、
のように指定すれば出来ますが、これを、例えばフォームがロードされたタイミングで決定したい場合はどのように実装すれば良いでしょうか? GridViewのRowEditingイベントで設定すれば良いかと思い以下のように実装しました。
しかしこれだと、テキストボックスが表示され、そのテキストの値が変更できない、というような状況になってしまいます。 一番上にあるコードの、あらかじめReadOnly="true"を設定する方法だと、テキストボックスが表示されないのですが、このようにしたいと思っています。 | ||||||||
|
投稿日時: 2006-10-18 14:03
静的に指定している場合と同じことをプログラムでやればいいのですから、こうなるかと。
((BoundField)this.GridView1.Columns[1]).ReadOnly = true; | ||||||||
|
投稿日時: 2006-10-18 14:24
どっとねっとふぁんさん、ありがとうございます!
this.GridView1.Columns[1] これに設定しようとしていたのですが、ReadOnlyが設定出来ませんでした。 BoundFieldにキャストすれば良かったのですね。 | ||||||||
|
投稿日時: 2006-10-18 14:53
this.GridView1.Columns[1]が返すのはDataControlFieldクラスですね。
これを適切なクラスにキャストする必要があります。 たいていはBoundFieldだと思いますけど、場合によってはCheckBoxFieldだったりするので 注意は必要ですね。 | ||||||||
|
投稿日時: 2006-10-19 17:03
なるほど、かならずBoundFieldでは無いという事ですね。
注意が必要ですね。 ありがとうございました! |
1