ASP.NET服务器端控件学习(一)

  刚做完一个行业门户网站的项目,闲下来就发觉是不是可以把日常用的一些控件进行功能性的增加然后再封装?这样以后使用起来更方便一些.在网上查资料得知可以全部做成服务端控件,因以前从来没有做过这方面的开发,但编程本来就是一事通万理通.

  "初次见面,请多关照"

      打开VS2010  新建服务器控件,会得到如下所示代码,本文以Repeater封装AJAX实现无刷新功能:

 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}:servercontrol1 runat=\"server\"></{0}:servercontrol1>没有""的时候,可以不用反斜杠

临时有事,今天就写到这里



原文地址:https://www.cnblogs.com/wavegui/p/2371588.html