[英]How to put server-side control in Literal?
我想将服务器端控件放入文字中。 可能吗? 如果是,怎么办? 我知道该类的描述说明了一切:
表示HTML元素,文本和ASP.NET页中不需要在服务器上进行处理的任何其他字符串
如果要将服务器端代码包装在其他控件中,则可能要使用Panel。 正如评论所指出的那样,将文本文本视为服务器端控件是不可能的。
有趣的是,昨天我刚浏览了一些旧代码时,出现了这一点。 文字可以做到这一点。 我最初这样做是为了通过Javascript通过Web服务调用发出用户控件(我知道,这很有趣),但这也符合您的需求。
protected void Page_Load(object sender, EventArgs e)
{
litTest.Text = RenderUserControlAsString("WebUserControl1.ascx");
}
private string RenderUserControlAsString(string path)
{
Page page = new Page();
UserControl control = (UserControl)page.LoadControl(path);
//add the control to the page
page.Controls.Add(control);
StringWriter sw = new StringWriter();
HttpContext.Current.Server.Execute(page, sw, true);
//return the rendered markup of the page, which only has our single user control
return sw.ToString();
}
将文字放在页面上,然后将其文本值分配给RenderUserControlAsString(“ User Control的路径”)。 话虽如此,在用户控件中,您必须将子控件包装在窗体控件中。
<form runat="server"> <asp:TextBox id="txtTest" Text="From User Control" runat="server" /> </form>
希望对您有所帮助!
TextBox myTextBox = new TextBox();
YourLiteralID.Controls.Add(myTextBox);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.