- - PR -
ItemTemplate でのマスタの名称表示
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-04-08 22:49
ASP.NET で SqlDataSource と GridView や DetailsView で
データを更新する場合を考えます。 テーブルをコード値で更新し、そのコードに対する名称をマスタテーブルに 持っている場合、データをドロップダウンで入力させることがあると思います。 このような場合、テンプレートフィールドにして、 EditItemTemplate や InsertItemTemplate 内では、 DropDownList を配置して SelectedValue プロパティにバインドしています。 さて、EditItemTemplate や InsertItemTemplate はこれでよいのですが、 ReadOnly モードのときの表示(ItemTemplate)において、 名称を表示させたいのですが、良い方法はないものでしょうか? 例えば同じように DropDownList を配置して、Enabled を False に設定するのも手ですが、 見た目は当然ながらドロップダウンリストです。 このような形ではなく、通常のテキスト(Label コントロールのような)として、 表示させる簡単な方法を探しています。 コードから名称を取得するようなメソッドを1つ用意して、 カスタムバインド式に設定するという手は考えて、これで実現はできたのですが、 DropDownList ならコードを手で書かずに作れるわけですから、 何かいい方法がないかと思った次第です。 よろしくお願いします。 | ||||
|
投稿日時: 2008-04-09 09:19
コードと名称を紐付けたビューを用意して、それを参照するというのはいかがでしょうか?
| ||||
|
投稿日時: 2008-04-09 09:30
私もたぶんこの方法でいくと思います。 もしくは、お望みの機能を持ったLabelコントロールを作っちゃうとか。 | ||||
|
投稿日時: 2008-04-09 14:09
実はもっと簡単なやり方があって、私が知らないだけなのかと思って
質問させていただきましたが、そうでもないのですね。 ありがとうございました。 rain さんのヒントを元に、カスタムコントロールも作って、 表示することができましたので、そのソースを載せておきます。
※ValueMemberLabel という名前にしましたが、よく考えたら、 ValueMembr じゃなくて DisplayMember を表示しているので、 クラス名を修正しました。 ValueMemberLabel → DisplayMemberLabel [ メッセージ編集済み 編集者: テッテ 編集日時 2008-04-09 14:23 ] |
1