有没有一种通过代码填充ITemplate的方法?假设我有一个UpdatePanel
UpdatePanel upnl = new UpdatePanel();
// What should be done next?
//upnl.ContentTemplate = ...它的结果将等同于:
<asp:UpdatePanel runat="server" ID="upnl">
<ContentTemplate>
test
</ContentTemplate>
</asp:UpdatePanel>发布于 2011-11-28 22:43:43
如果我正确理解了您的问题,就可以这样做:
public class YourTemplate : ITemplate
{
public void InstantiateIn(Control container)
{
container.Controls.Add(new LiteralControl("test"));
}
}
...
upnl.ContentTemplate = new YourTemplate();发布于 2011-11-28 23:34:34
ASP.net中所有启用了模板的控件都必须实现System.Web.UI.ITemplate接口才能在运行时创建模板。
,但在更新面板的情况下不需要创建自定义模板类。检查UpdatePanel.ContentTemplateContainer Property -
ContentTemplateContainer属性使您能够以编程方式向UpdatePanel控件添加子控件,而不必定义从ITemplate接口继承的自定义模板。如果以声明方式或通过设计器将内容添加到UpdatePanel控件,则应使用<ContentTemplate> element将内容添加到ContentTemplate属性。
查看此代码片段-有关更多详细信息,请查看上面的ContentTemplateContainer链接。
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);https://stackoverflow.com/questions/8297015
复制相似问题