开发模板化控件 (template)

//----自己写的
//--调用
 protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Cover1.Html = "111";
                Cover1.DataBind();
            }
        }

 
<uc1:Cover id="Cover1" runat="server"  >
<ItemTemplate>
<%#Container.Html%>
</ItemTemplate>
</uc1:Cover>
//--

//---控件
namespace NoteOnlineWeb.Controls
{
    [ParseChildren(true)]
    public partial class Cover : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
         
        }
        private String mHtml = null;
        private ITemplate itemPlate;

        [TemplateContainer(typeof(CTemplate))]//指定当前控件类型
        public ITemplate ItemTemplate
        {
            get { return itemPlate; }
            set { itemPlate = value; }
        }

        public String Html
        {
            get
            {
                return mHtml;
            }
            set
            {
                mHtml = value;
            }
        }

        protected override void OnDataBinding(EventArgs e)
        {
            this.EnsureChildControls();//确定是否包含子控件,否则创建
            base.OnDataBinding(e);
        }
        CTemplate myTemplateContainer;
        protected override void  CreateChildControls()
        {
            if (itemPlate != null)
            {
                   myTemplateContainer = new CTemplate(this);
                   itemPlate.InstantiateIn(myTemplateContainer);//当由类实现时,创建子控件对象
                   Controls.Add(myTemplateContainer);//这里就是把你写的模版放在那里如果你有一个控件叫aaa那就可以写成aaa.Controls.Add(myTemplateContainer)

        
            }
         
        }


    }


    public class CTemplate : Control, INamingContainer
    {
        private Cover parent;
        public CTemplate(Cover parent)
        {
            this.parent = parent;
        }

        public String Html
        {
            get
            {
                return parent.Html;
            }
        }
     
    }


}
//--
//--- 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值