zoukankan      html  css  js  c++  java
  • .NET服务器自定义控件

    最近对自定义控件特着迷,从刚开始的模棱两可,到现在也能做些小控件了,个人感觉这个就是熟能生巧的活。

    下面是我的一些总结(如果您是高手,请绕过):

    刚接触自定义控件的时候根本就不知道怎么在页面显示控件,我这里根据个人实践总结了一些知识点:首先,开发一个自定义控件,并且能够生成成功,那么接下来就可以在Web页面上注册使用了:<%@ Register Assembly="myTestControl" TagPrefix="tt" Namespace="myTestControl" %>

    解释一下:这里的Namespace属性很重要,这个是指控件的解决方案名称,Assembly是控件的AssemblyInfo.cs中[assembly: AssemblyProduct("myTestControl")]的属性值

    在html中使用时:<tt:Control1 runat="server"></tt:Control1>,这里的Control1 是控件的名称,当然了,一个解决方案终中可能有多个控件,那么这个值就是你要使用的控件的名称。一切就OK 了,然后可以加上一些例如ID的属性等。

    上面介绍的是控件的使用,具体的开发是个循序渐进的过程,刚开始的时候可以用下面的方法写:

    View Code
     1         protected override void Render(HtmlTextWriter writer)
     2         {
     3             writer.Write("<table style='。。。。'>");
     4             writer.Write("<tr>");
     6             writer.Write("<td>");
     7             writer.Write("<select");
     8             writer.Write("<option value='0'>A</option>");
     9             writer.Write("<option value='1'>B</option>");
    10             writer.Write("</select>");
    11             writer.Write("</td>");
    12             writer.Write("</tr>");
    13             writer.Write("<tr>");
    15             writer.Write("<td><input name='area' id='CreditCardNo' type='text' /></td>");
    16             writer.Write("</tr>");
    17             writer.Write("<tr>");
    18             writer.Write("<td>" + 属性 + "</td>");
    19             writer.Write("<td><input name='Name' id='NameID' type='text' /></td>");
    20             writer.Write("</tr>");
    21             writer.Write("<tr>");
    23             writer.Write("</table>");

    等熟悉了之后我们对代码进行了修改:

    View Code
     1     writer.RenderBeginTag(HtmlTextWriterTag.Table);
     2         writer.RenderBeginTag(HtmlTextWriterTag.Tr);
     3              writer.RenderBeginTag(HtmlTextWriterTag.Td);
     4                 writer.Write("<strong>" + PaymentMethodText + "</strong>");
     5              writer.RenderEndTag();
     6              writer.RenderBeginTag(HtmlTextWriterTag.Td);
     7                 writer.AddAttribute(HtmlTextWriterAttribute.Name, "PaymentMethod");
     8                 writer.AddAttribute(HtmlTextWriterAttribute.Id, "PaymentMethod");
     9                 writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
    10                 writer.RenderBeginTag(HtmlTextWriterTag.Select);
    11 
    12                     writer.AddAttribute(HtmlTextWriterAttribute.Value, "0");
    13                     writer.RenderBeginTag(HtmlTextWriterTag.Option);
    14                         writer.Write("Visa");
    15                     writer.RenderEndTag();
    16 
    17                     writer.AddAttribute(HtmlTextWriterAttribute.Value, "1");
    18                     writer.RenderBeginTag(HtmlTextWriterTag.Option);
    19                         writer.Write("MasterCard");
    20                     writer.RenderEndTag();
    21 
    22                 writer.RenderEndTag();
    23             writer.RenderEndTag();
    24         writer.RenderEndTag();
    25           writer.RenderBeginTag(HtmlTextWriterTag.Tr);
    26             writer.RenderBeginTag(HtmlTextWriterTag.Td);
    27                 writer.Write("<strong>" + CreditCardNoText + "</strong>");
    28             writer.RenderEndTag();
    29             writer.RenderBeginTag(HtmlTextWriterTag.Td);
    30                   writer.AddAttribute(HtmlTextWriterAttribute.Name, "CreditCardNo");
    31                   writer.AddAttribute(HtmlTextWriterAttribute.Id, "CreditCardNo");
    32                   writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
    33                   writer.RenderBeginTag(HtmlTextWriterTag.Input);
    34                   writer.RenderEndTag();
    35             writer.RenderEndTag();
    36           writer.RenderEndTag();
    37           writer.RenderBeginTag(HtmlTextWriterTag.Tr);
    38             writer.RenderBeginTag(HtmlTextWriterTag.Td);
    39                 writer.Write("<strong>" + CardholderNameText + "</strong>");
    40             writer.RenderEndTag();
    41             writer.RenderBeginTag(HtmlTextWriterTag.Td);
    42                   writer.AddAttribute(HtmlTextWriterAttribute.Name, "CardholderName");
    43                   writer.AddAttribute(HtmlTextWriterAttribute.Id, "CardholderName");
    44                   writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
    45                   writer.RenderBeginTag(HtmlTextWriterTag.Input);
    46             writer.RenderEndTag();
    47             writer.RenderEndTag();
    48           writer.RenderEndTag();
    49 
    50           writer.RenderBeginTag(HtmlTextWriterTag.Tr);
    51             writer.RenderBeginTag(HtmlTextWriterTag.Td);
    52                 writer.Write("<strong>" + ExpirationDateText + "</strong>");
    53             writer.RenderEndTag();
    54             writer.RenderBeginTag(HtmlTextWriterTag.Td);
    55                 writer.AddAttribute(HtmlTextWriterAttribute.Name, "Month");
    56                 writer.AddAttribute(HtmlTextWriterAttribute.Id, "Month");
    57                 writer.RenderBeginTag(HtmlTextWriterTag.Select);
    58                       for (int day = 1; day < 13; day++)
    59                       {
    60                     writer.AddAttribute(HtmlTextWriterAttribute.Value, day.ToString());
    61                     writer.RenderBeginTag(HtmlTextWriterTag.Option);
    62 
    63                         if (day < 10)
    64                           writer.Write("0" + day.ToString());
    65                         else
    66                           writer.Write(day);
    67 
    68                     writer.RenderEndTag();
    69                       }
    70                    writer.RenderEndTag();
    71                    writer.Write("&nbsp;");
    72 
    73                    writer.AddAttribute(HtmlTextWriterAttribute.Name, "Year");
    74                    writer.AddAttribute(HtmlTextWriterAttribute.Id, "Year");
    75                    writer.RenderBeginTag(HtmlTextWriterTag.Select);
    76 
    77                       for (int year = 2005; year < 2015; year++)
    78                       {
    79                     writer.AddAttribute(HtmlTextWriterAttribute.Value, year.ToString());
    80                     writer.RenderBeginTag(HtmlTextWriterTag.Option);
    81                     writer.Write(year);
    82                     writer.RenderEndTag();
    83                       }
    84                    writer.RenderEndTag();
    85             writer.RenderEndTag();
    86           writer.RenderEndTag();
    87 
    88           writer.RenderBeginTag(HtmlTextWriterTag.Tr);
    89               writer.AddAttribute(HtmlTextWriterAttribute.Align, "center");
    90               writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
    91               writer.RenderBeginTag(HtmlTextWriterTag.Td);
    92                   writer.AddAttribute(HtmlTextWriterAttribute.Type, "submit");
    93                   writer.AddAttribute(HtmlTextWriterAttribute.Value, SubmitButtonText);
    94                   writer.RenderBeginTag(HtmlTextWriterTag.Input);
    95                   writer.RenderEndTag();
    96               writer.RenderEndTag();
    97           writer.RenderEndTag();
    98       writer.RenderEndTag();

     当然,还可以这样写:

    View Code
     1         [Browsable(true)]
     2         [DefaultValue("区域")]
     3         [Category("")]
     4         [Description("set the area")]
     5         public string DropArea
     6         {
     7             get { return ViewState["_dropArea"] != null ? (string)ViewState["_dropArea"] : "区域"; }
     8             set { ViewState["_dropArea"] = value; }
     9         }
    10         [Browsable(true)]
    11         [DefaultValue("街道")]
    12         [Category("")]
    13         [Description("set the street")]
    14         public string Street
    15         {
    16             get { return ViewState["_street"] != null ? (string)ViewState["_street"] : "街道"; }
    17             set { ViewState["_street"]=value;}
    18         }
    19 
    20         [Browsable(true)]
    21         [DefaultValue("地址")]
    22         [Category("")]
    23         [Description("set the address")]
    24         public string Address
    25         {
    26             get { return ViewState["_address"] != null ? (string)ViewState["_address"] : "地址"; }
    27             set { ViewState["_address"] = value; }
    28         }
    29 
    30         protected override void Render(HtmlTextWriter writer)
    31         {
    32             writer.RenderBeginTag(HtmlTextWriterTag.Table);
    33             writer.RenderBeginTag(HtmlTextWriterTag.Tr);
    34             writer.RenderBeginTag(HtmlTextWriterTag.Td);
    35             writer.Write("详细地址");
    36             writer.RenderEndTag();
    37             writer.RenderBeginTag(HtmlTextWriterTag.Td);
    38             writer.AddAttribute(HtmlTextWriterAttribute.Name, "area");
    39             writer.AddAttribute(HtmlTextWriterAttribute.Id, "areaID");
    40             writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "80px");
    41             writer.RenderBeginTag(HtmlTextWriterTag.Select);
    42             writer.AddAttribute(HtmlTextWriterAttribute.Value, "0");
    43             writer.RenderBeginTag(HtmlTextWriterTag.Option);
    44             writer.Write("天宁区");
    45             writer.RenderEndTag();
    46             writer.AddAttribute(HtmlTextWriterAttribute.Value, "1");
    47             writer.RenderBeginTag(HtmlTextWriterTag.Option);
    48             writer.Write("钟楼区");
    49             writer.RenderEndTag();
    50             writer.RenderEndTag();
    51             writer.RenderEndTag();
    52             writer.RenderBeginTag(HtmlTextWriterTag.Td);
    53             writer.AddAttribute(HtmlTextWriterAttribute.Name, "area");
    54             writer.AddAttribute(HtmlTextWriterAttribute.Id, "areaID");
    55             writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100px");
    56             writer.RenderBeginTag(HtmlTextWriterTag.Select);
    57             writer.AddAttribute(HtmlTextWriterAttribute.Value, "0");
    58             writer.RenderBeginTag(HtmlTextWriterTag.Option);
    59             writer.Write("天宁区街道");
    60             writer.RenderEndTag();
    61             writer.AddAttribute(HtmlTextWriterAttribute.Value, "1");
    62             writer.RenderBeginTag(HtmlTextWriterTag.Option);
    63             writer.Write("钟楼区街道");
    64             writer.RenderEndTag();
    65             writer.RenderEndTag();
    66             writer.RenderEndTag();
    67             writer.RenderBeginTag(HtmlTextWriterTag.Td);
    68             writer.AddAttribute(HtmlTextWriterAttribute.Name, "CardholderName");
    69             writer.AddAttribute(HtmlTextWriterAttribute.Id, "CardholderName");
    70             writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
    71             writer.RenderBeginTag(HtmlTextWriterTag.Input);
    72             writer.RenderEndTag();
    73             writer.RenderEndTag();
    74             writer.RenderEndTag();
    75             writer.RenderEndTag();

    生成解决方案后,就可以使用了。

  • 相关阅读:
    el-table单元格新增、编辑、删除功能
    div 拖拽
    dataTable 分页用法总结
    pc端字体大小计算以及echart中字体大小计算
    pc端字体大小自适应几种方法
    AB PLC教程
    Electric p8激活教程
    三菱FX系列PLC教程
    Visual Studio 2015简体中文企业版/专业版下载+有效激活密钥
    servlet在mvc里的分层,驻留内存的疑问?
  • 原文地址:https://www.cnblogs.com/jsping/p/2652380.html
Copyright © 2011-2022 走看看