自定义控件(customControl)

自定义控件:
1.在BLL层(或其他层---n层结构)右键-〉add -〉Custom Control->groupbox.cs
2.开始编写自定义控件,命名空间不是可选的,控件类必须属于某个命名空间。文件顶端的using 语句指定了----包含该控件所使用的类型的----命名空间。namespace语句将类的定义放入一个名为BLL的自定义命名空间。
3.csc /t:library /out:groupbox.dll groupbox.cs 生成groupbox.dll文件
4.把groupbox.dll文件拷贝至UI层的bin文件夹内。
5.在groupboxPage.aspx页面首部写:

自定义控件(customControl)   <% @Register TagPrefix="win" Namespace="BLL" Assembly="groupbox.dll">

关键是Namespace和Assembly要和groupbox.cs 中对应,groupbox.dll即是第三步生成的groupbox.dll
6.在groupboxPage.aspx页面内就可以写:
 <win:groupbox  ID="MyGroupBox" Text="Colors" runat="server">
.........................关键是RadioButtonList不要放到外面去,要放到groupbox的里面来
</win:groupbox>
groupbox.cs:

自定义控件(customControl) using  System;
自定义控件(customControl)
using  System.Web;
自定义控件(customControl)
using  System.Web.UI;
自定义控件(customControl)
自定义控件(customControl)
namespace  BLL
自定义控件(customControl)
{
自定义控件(customControl)    
public partial class GroupBox : Control
自定义控件(customControl)    
{
自定义控件(customControl)       
/*
自定义控件(customControl)        public GroupBox()
自定义控件(customControl)        {
自定义控件(customControl)            InitializeComponent();
自定义控件(customControl)        } 
自定义控件(customControl)        
自定义控件(customControl)        protected override void OnPaint(PaintEventArgs pe)
自定义控件(customControl)        {
自定义控件(customControl)            // TODO: Add custom paint code here
自定义控件(customControl)
自定义控件(customControl)            // Calling the base class OnPaint
自定义控件(customControl)            base.OnPaint(pe);
自定义控件(customControl)        }
自定义控件(customControl)       
自定义控件(customControl)      
*/

自定义控件(customControl)        
string MyText = "";
自定义控件(customControl)        
public string Text
自定义控件(customControl)        
{
自定义控件(customControl)            
get return MyText; }
自定义控件(customControl)            
set { MyText = value; }
自定义控件(customControl)        }

自定义控件(customControl)
自定义控件(customControl)        
protected override void Render(HtmlTextWriter writer)
自定义控件(customControl)        
{
自定义控件(customControl)            
//输出一个<fieldset标记
自定义控件(customControl)
            writer.WriteBeginTag("fieldset");//<fieldset id=自定义控件(customControl) 
自定义控件(customControl)
            if ( ID != null)
自定义控件(customControl)            
{
自定义控件(customControl)                writer.WriteAttribute(
"id", ClientID);
自定义控件(customControl)                
//represent the closing angle bracket(>) of a markup tag
自定义控件(customControl)
                writer.Write(HtmlTextWriter.TagRightChar);
自定义控件(customControl)            }

自定义控件(customControl)            
//输出一个<legend>元素
自定义控件(customControl)
            if (Text.Length > 0)
自定义控件(customControl)            
{
自定义控件(customControl)                writer.WriteFullBeginTag(
"legend");//<legend>
自定义控件(customControl)
                writer.Write(Text);
自定义控件(customControl)                writer.WriteEndTag(
"legend");
自定义控件(customControl)            }

自定义控件(customControl)            
//输出<fieldset></fieldset>标记之间的内容
自定义控件(customControl)
            base.Render(writer);
自定义控件(customControl)            
//输出一个</fieldset>标记
自定义控件(customControl)
            writer.WriteEndTag("fieldset");
自定义控件(customControl)        }

自定义控件(customControl)    }

自定义控件(customControl)}

自定义控件(customControl)

groupboxPage.aspx

自定义控件(customControl) <% @ Page Language="C#" AutoEventWireup="true" CodeFile="GroupBoxPage.aspx.cs" Inherits="GroupBoxPage"  %>
自定义控件(customControl)
<% @Register  TagPrefix="win" Namespace="BLL" Assembly="GroupBox"  %>
自定义控件(customControl)
自定义控件(customControl)
< html  xmlns ="http://www.w3.org/1999/xhtml"   >
自定义控件(customControl)
自定义控件(customControl)
< head  runat ="server" >
自定义控件(customControl)    
< title > Untitled Page </ title >
自定义控件(customControl)
</ head >
自定义控件(customControl)
< body >
自定义控件(customControl)    
< form  id ="form1"  runat ="server" >
自定义控件(customControl)    
< asp:CheckBox  ID ="Toggle"  AutoPostBack ="true"  Text ="Show Color"  OnCheckedChanged ="OnToggle"  Checked ="true"  runat ="server"   />
自定义控件(customControl)    
< br  />
自定义控件(customControl)    
< win:GroupBox  ID ="MyGroupBox"  Text ="Colors"  runat ="server" >
自定义控件(customControl)    
自定义控件(customControl)    
< asp:RadioButtonList  ID ="rbl1"  runat ="server" >
自定义控件(customControl)    
< asp:ListItem  Text ="red"  Selected ="true" ></ asp:ListItem >
自定义控件(customControl)    
< asp:ListItem  Text ="Green"   ></ asp:ListItem >
自定义控件(customControl)    
< asp:ListItem  Text ="Blue" ></ asp:ListItem >
自定义控件(customControl)    
</ asp:RadioButtonList >
自定义控件(customControl)    
</ win:GroupBox >     
自定义控件(customControl)    
</ form >
自定义控件(customControl)
</ body >
自定义控件(customControl)
</ html >
自定义控件(customControl)



 

你可能感兴趣的:(自定义控件)