- - PR -
ASP.NET Dynamic Dataについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-09-04 09:26
ASP.NET Dynamic Dataについて質問させてください。
Modelフォルダ上に作成したクラスに対して、Dynamic Data フィールド(ユーザーコントロール)の適用を行いたいのですが、 メタデータにUIHint属性を指定しても、適用されません。 その他ScaffoldColumn属性、Required属性などは問題なく適用できているのですが・・・。 何か原因に心当たりのある方がいらっしゃいましたら 教えてください。 [ メッセージ編集済み 編集者: 未記入 編集日時 2008-09-06 02:17 ] |
|
投稿日時: 2008-09-04 11:15
どのようなユーザコントロールが存在していて、どのようにUIHintの部分を記述したのでしょうか?
あなたが何を行ったかをきちんと記述しない限り、アドバイスできる方もいないんじゃないかと思います。 |
|
投稿日時: 2008-09-04 11:51
どっとねっとふぁんさま早速の書き込みありがとうございます。
また、情報が不足しておりまして申し訳ございません。 とにかくDynamic Data フィールド(ユーザーコントロール)の適用を試したく、 Dynamic Data Web アプリケーション テンプレートから作成した際に、デフォルトで 配置されるBoolean.ascxとBoolean_Edit.ascxの末尾に「X」をいれて上書きし、 クラスファイルに以下のように設定しました。 Private _deleted As Object <UIHint("Boolean")> _ Public Property deleted() As Object Get Return _deleted End Get Set(ByVal value As Object) _deleted = value End Set End Property しかし、動作確認を行うと、deleted列のチェックボックスの後ろに「X」が表示されません。 何か勘違いしておりますでしょうか? [ メッセージ編集済み 編集者: 未記入 編集日時 2008-09-04 23:55 ] |
|
投稿日時: 2008-09-04 14:25
これ、UIHintがなくてもBooleanのコントロールの表示が行われていたところなのでしょうか?
それともUIHintをつけたことでBooleanのコントロールが表示されるようになったのでしょうか。 あと、Boolean.ascxは直接上書きしたんですよね。 手元でためしてBoolean.ascxにXを書き足した場合、うまく表示されていますけど。 |
|
投稿日時: 2008-09-05 04:43
すみません、間違っていました。
Boolean.ascxを直接上書きした時は、きちんと「X」が表示されました。 これは、UIHintをつけても、つけなくても、同様にきちんと表示されました。 Boolean.ascxをコピーして、末尾に「X」を追加後Bool.ascxとリネームし、 クラスファイルを<UIHint("Bool")> とした場合は、「X」が表示されませんでした。 どうやら、自分でファイルを作った場合がダメなようです。 自分でファイルを作った場合は、何か特別な設定が必要なのでしょうか? |
|
投稿日時: 2008-09-05 13:46
試してみました。
ascx(とascx.cs)をコピーした後、ascx.cs側のクラス名の変更が必要なようです。 具体的には、ascx.csのBooleanFieldというクラス名をBoolFieldに変更します。 そして、ascxの1行目の Inherits="BooleanField" となっているところを Inherits="BoolField" に書き換えます。 これで<UIHint("Bool")>が有効になると思います。 どうやら、ascxの名前というより、クラス名(BooleanFieldかBoolFieldか)で判断しているようですね。 ちなみに、UIHintに存在していないクラス名(たとえば"Borol"とか)を指定すると、その指定は無視され、元のデータタイプから推測されるものが使われるようです。 ascxをコピーしてクラス名を変更していない状態の場合、"Bool"に対応するクラスが存在していないので、元のデータタイプに合わせたBoolean.ascxが利用される、ということのようですね。 [ メッセージ編集済み 編集者: どっとねっとふぁん 編集日時 2008-09-05 13:47 ] |
|
投稿日時: 2008-09-06 02:15
どっとねっとふぁんさま、書き込みありがとうございます。
きちんと表示され、解決致しました。 この問題にずっとハマっていたので、助かりました。 ありがとうございます。 なるほど、クラス名で判断されているのですね。 |
1