ここから本文です

ASP.NETで初期値を設定したコントロールを作成したい

このエントリーをはてなブックマークに追加

質問者

mattsu222さん

2009/12/719:01:08

ASP.NETで初期値を設定したコントロールを作成したい

ドロップダウンリストに初期値を設定して
いろいろな場所で使いたいと思っています。
この場合、どうやって作成するのでしょうか?
VisualStudio2008を使用しています。
それっぽいのはWebユーザコントロールですが・・・
それともただのクラスファイルで作成ですか?

具体的な実装がわかりません。

補足クラスを作成して、DropDownListを作成し、OnLoadを実装し
このCSファイルを画面にドラッグアンドドロップしてもリンクが表示されるだけした
そしてこのリンクを押してもエラーです。
うーん、何がいけないんでしょうか・・・


public class Class1 : DropDownList
{
protected override void OnLoad(EventArgs e)
{
this.Items.Add(new ListItem("1","1"));
this.Items.Add(new ListItem("2","2"));
base.OnLoad(e);
}
}

閲覧数:
2,267
回答数:
1

違反報告

ベストアンサーに選ばれた回答

ttkai00さん

編集あり2009/12/800:06:57

普通に DropDownList を継承したクラスを作ればよいと思います。

Web ユーザー コントロールでも、できないことはないと思いますが、これはどちらかというと、複合コントロール(複数のコントロールをひとまとめにしたようなもの)向けです。たとえばテキストボックスとボタンを合わせて1つのコントロールにしたりといった感じです。

単純に標準のコントロールに機能を追加したい場合は、元のクラスを継承して作ればそれでよいです。

アイテムの追加をどこでやるかについては、いくつか候補があると思います。私なら、OnLoad メソッドをオーバーライドしてそこで追加すると思います。

※補足を受けて

すみません。ちょっと説明不足でしたね。

aspx で使うには、まずそのコントロールを含む名前空間を Register アプリケーション ディレクティブで登録します。

Web プロジェクトの App_Code で定義されているクラスなら、以下のようになります。

<%@ Register TagPrefix="ABC" Namespace="ABC.DEF" Assembly="__code" %>

別のアセンブリで定義されているクラスなら、以下のようにアセンブリ名を指定します。

<%@ Register TagPrefix="ABC" Assembly="ABC" Namespace="ABC.DEF" %>

これを aspx の最初の方にある、アプリケーション ディレクティブを書く場所に書いてください。<%@ ~ が並んでいる場所です。Page の次とかで問題ありません。



続いて、aspx のコード中の、コントロールを配置したい場所に、以下のようにタグを書きます。(属性は省略してあります)

<ABC:Class1 />

ここでいう ABC は、Register の TagPrefix に相当します。Register は、この名前空間のクラスを、このプレフィックスで使えるようにするという定義です。

ABC: まで書けばインテリセンスが利くと思います。



また、ドラッグ&ドロップできるようにしたいのなら、ツールボックスに登録する必要がありますし、DefaultProperty 属性や ToolboxData 属性も、一緒に指定することが多いですね。

より詳しい情報は、以下の MSDN のページを参考にしてください。

http://msdn.microsoft.com/ja-jp/library/ms366537.aspx

質問した人からのコメント

2009/12/8 18:30:38

うまくいきました。 丁寧に教えていただきありがとうございました!

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル
  • このエントリーをはてなブックマークに追加
簡単にみんなで作るショート動画アプリ Yahoo!Chocotle for Android(無料)

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

ID/ニックネームを選択し、「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する