快速业务通道

ASP.NET自定义控件组件开发 第五章 模板控件开发

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20
加个设计器就可以了。

设计器是个类。在ASP.NET有很多的设计器,如ControlDesigner,CompositeControlDesigner.等等。

我们的设计器的一般都继承已有的设计器类。在这里我不多讲,大家需要的话,我专们用一章来讲。

Code

 1public class MyLoginDesigner : CompositeControlDesigner
2 {
3 public override void Initialize(IComponent component)
4 {
5 base.Initialize(component);
6 SetViewFlags(ViewFlags.TemplateEditing, true);
7 }
8
9 public override string GetDesignTimeHtml()
10 {
11 TemplateLoginControl control = Component as TemplateLoginControl;
12 if (control != null)
13 {
14 if (control.LoginUserNameTemplate == null)
15 {
16 return CreatePlaceHolderDesignTimeHtml("请您编辑用户名的模板");
17
18 }
19
20 if (control.LoginUserPasswardTemplate == null) 21 {
22 return CreatePlaceHolderDesignTimeHtml("请您编辑用户密码的模板");
23 }
24 }
25 return base.GetDesignTimeHtml();
26 }
27
28 private TemplateGroupCollection tempgc;
29 public override TemplateGroupCollection TemplateGroups
30 {
31 get
32 {
33 if (tempgc == null)
34 {
35
36 tempgc = base.TemplateGroups;
37
38 TemplateGroup loginUserNameTemplate = new TemplateGroup("UserNameTemplate");
39 loginUserNameTemplate.AddTemplateDefinition (new TemplateDefinition (this,"UserNameTemplate",
40 Component,"UserNameTemplate",false ));
41 tempgc.Add (loginUserNameTemplate );
42
43 TemplateGroup loginPasswardNameTemplate = new TemplateGroup("UserPasswardTemplate");
44 loginPasswardNameTemplate.AddTemplateDefinition(new TemplateDefinition(this, "UserPasswardTemplate",
45 Component,"UserPasswardTemplate",false ));
46 tempgc.Add(loginPasswardNameTemplate);
47 }
48 return tempgc;
49 }
50 }
51 }

然后在这样:

Code

1 [Designer (typeof (MyLoginDesigner ))]
2   public class TemplateLoginControl:Login

一切就OK了,写的有些催促,大家有问题我一定回复。

完整代码如下:

Code

  1using System;
  2using System.Collections.Generic;
  3using System.Text;
  4using System.Web;
  5using System.Web.UI;
  6using System.Web.UI.WebControls;
  7using System.ComponentModel;
  8using System.Web.UI.Design;
  9using System.Web.UI.Design.WebControls ;
 10using System.Collections ;
 11
 12
 13
 14
 15namespace LoginControl
 16{
 17    [Designer (typeof (MyLoginDesigner ))]
 18    public class TemplateLoginControl:Login
 19    {
 20        //声明模板#region//声明模板
 21        private ITemplate loginUserNameTemplate;
 22
 23        [Browsable (false )]//我们不想在属性窗口中看见它
 24 

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号