100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 自定义用户控件模板

自定义用户控件模板

时间:2020-11-01 06:21:00

相关推荐

自定义用户控件模板

1、在Controls文件夹下添加名为TemplatedUC用户控件,该用户控件创建一个可在宿主页上声明为 <MessageTemplate> 的模板。该模板控件还公开两个可由宿主页在模板内访问的属性:Index 和 Message。

源代码如下:

using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;using ponentModel;public partial class Controls_TemplatedUC : System.Web.UI.UserControl{private ITemplate messageTemplate = null;[TemplateContainer(typeof(MessageContainer))][PersistenceMode(PersistenceMode.InnerProperty)]public ITemplate MessageTemplate{get { return messageTemplate; }set { messageTemplate = value; }}void Page_Init(){if (messageTemplate != null){string[] fruits = { "apple", "orange", "banana", "pineapple" };for (int i = 0; i < 4; i++){MessageContainer container = new MessageContainer(i, fruits[i]);messageTemplate.InstantiateIn(container);PlaceHolder1.Controls.Add(container);}}}protected void Page_Load(object sender, EventArgs e){}public class MessageContainer : Control, INamingContainer{private int m_index;private String m_message;internal MessageContainer(int index, String message){m_index = index;m_message = message;}public int Index{get{return m_index;}}public String Message{get{return m_message;}}}}

2、创建包含该用户控件的页面CustomControlTemplate.aspx。代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CustomControlTemplate.aspx.cs"Inherits="CustomControlTemplate" %><%@ Register Src="Controls/TemplatedUC.ascx" TagName="TemplatedUC" TagPrefix="uc1" %><%--引用用户控件--%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head runat="server"><title>用户控件模板</title></head><body><h1>Testing Templated User Control</h1><form id="form1" runat="server"><div><uc1:TemplatedUC ID="TemplatedUC1" runat="server"><MessageTemplate>Index:<asp:Label runat="server" ID="Label1" Text='<%# Container.Index %>' /><br />Message:<asp:Label runat="server" ID="Label2" Text='<%# Container.Message %>' /><hr /></MessageTemplate></uc1:TemplatedUC></div></form></body></html>

--------------------------------------

后台代码:

using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;public partial class CustomControlTemplate : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){DataBind();}}

3、好了,点击F5即可运行。显示 的结果如图所示。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。