首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过代码填充ITemplate

通过代码填充ITemplate
EN

Stack Overflow用户
提问于 2011-11-28 22:08:03
回答 2查看 6.5K关注 0票数 2

有没有一种通过代码填充ITemplate的方法?假设我有一个UpdatePanel

代码语言:javascript
复制
UpdatePanel upnl = new UpdatePanel();
// What should be done next?
//upnl.ContentTemplate = ...

它的结果将等同于:

代码语言:javascript
复制
<asp:UpdatePanel runat="server" ID="upnl">
    <ContentTemplate>
    test
    </ContentTemplate>
</asp:UpdatePanel>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-28 22:43:43

如果我正确理解了您的问题,就可以这样做:

代码语言:javascript
复制
public class YourTemplate : ITemplate 
{
    public void InstantiateIn(Control container)
    {
        container.Controls.Add(new LiteralControl("test"));
    }
}

...
upnl.ContentTemplate = new YourTemplate();
票数 5
EN

Stack Overflow用户

发布于 2011-11-28 23:34:34

ASP.net中所有启用了模板的控件都必须实现System.Web.UI.ITemplate接口才能在运行时创建模板。

,但在更新面板的情况下不需要创建自定义模板类。检查UpdatePanel.ContentTemplateContainer Property -

ContentTemplateContainer属性使您能够以编程方式向UpdatePanel控件添加子控件,而不必定义从ITemplate接口继承的自定义模板。如果以声明方式或通过设计器将内容添加到UpdatePanel控件,则应使用<ContentTemplate> element将内容添加到ContentTemplate属性。

查看此代码片段-有关更多详细信息,请查看上面的ContentTemplateContainer链接。

代码语言:javascript
复制
UpdatePanel up1 = new UpdatePanel();
up1.ID = "UpdatePanel1";
Button button1 = new Button();
button1.ID = "Button1";
button1.Text = "Submit";
button1.Click += new EventHandler(Button_Click);
up1.ContentTemplateContainer.Controls.Add(button1);
Page.Form.Controls.Add(up1);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8297015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档