ASP.NETサーバ側コントロール学習(一)

5274 ワード

業界のポータルサイトのプロジェクトを終えたばかりで、暇になると日常的に使っているコントロールを機能的に増やしてパッケージ化できるのではないかと気づきました.これで後で使うのがもっと便利になります.ネット上で資料を調べてみると、サービス側のコントロールをすべて作ることができることが分かった.これまでこの方面の開発をしたことがないからだが、プログラミングはもともと一つのことが万理通に通じている.
「はじめまして、よろしくお願いします」
VS 2010の新しいサーバコントロールを開くと、以下のコードが得られます.ここでは、AJAXをRepeaterでカプセル化してリフレッシュ機能を実現します.
 1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Text;
5 using System.Web;
6 using System.Web.UI;
7 using System.Web.UI.WebControls;
8
9 namespace ServerControl1
10 {
11 [DefaultProperty("Text")]
12 [ToolboxData("<{0}:ServerControl1 runat=server></{0}:ServerControl1>")]
13 public class ServerControl1 : WebControl
14 {
15 [Bindable(true)]
16 [Category("Appearance")]
17 [DefaultValue("")]
18 [Localizable(true)]
19 public string Text
20 {
21 get
22 {
23 String s = (String)ViewState["Text"];
24 return ((s == null) ? "[" + this.ID + "]" : s);
25 }
26
27 set
28 {
29 ViewState["Text"] = value;
30 }
31 }
32
33 protected override void RenderContents(HtmlTextWriter output)
34 {
35 output.Write(Text);
36 }
37 }
38 }

上部ファイルから詳しく説明すると、一般的に上部にこのコントロールの説明、呼び出し方法、イベントがあります.repeaterを例にとると
[Designer(")]コントロールの設計の説明、よく使われるのはSystemのようです.Web.UI.Design.WebControls.コントロール名Designer
[DefaultEvent(")]コントロールのEventイベント、よく使われるItemCommandなど
[DefaultProperty(")]コントロールのプロパティ、一般的なDataSource、Textなど
[persistChildren()ネストされたコンテンツをネストされたコントロールとして保存するとtrueとなります.そうでなければfalseです.
[parseChildren()タグサーバコントロールは、アナライザがサーバコントロールタグに含まれる要素を、関連するControlBuilderによって分析される内容、すなわちコントロールとして解釈するように指示します.この場合、ChildrenAsProperties属性はfalseとなります.
[ToolboxDate()でよく使われる<{0}:servercontrol 1 runat="server">に「」がない場合は、スラッシュを使わなくてもよい
急用があったので今日はここまでにします