如何将服务器端控件放在Literal中
本文关键字:Literal 控件 服务器端 | 更新日期: 2023-09-27 18:22:05
我想在Literal中放置一个服务器端控件。有可能吗?如果是,如何?我知道这门课的描述说明了一切:
表示ASP.NET中的HTML元素、文本和任何其他字符串不需要在服务器上处理的页面
如果您想在其他控件中包装服务器端代码,您可能希望使用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("用户控件的路径")。话虽如此,在用户控件中,必须将子控件包装在表单控件中。
<form runat="server"> <asp:TextBox id="txtTest" Text="From User Control" runat="server" /> </form>
我希望这能有所帮助!
TextBox myTextBox = new TextBox();
YourLiteralID.Controls.Add(myTextBox);