我想在Literal中放置服务器端控件。可能吗?如果有,怎么样?我知道班级的描述说明了一切:
表示ASP.NET中的HTML元素,文本和任何其他字符串 不需要在服务器上处理的页面
答案 0 :(得分:1)
如果您想将服务器端代码包装在其他控件中,您可能希望使用Panel。正如评论已经说明的那样,不可能将文字文本视为服务器端控件。
答案 1 :(得分:0)
有趣的是,我昨天只看了一些旧的代码。文字可以做到这一点。我这样做是为了通过Javascript的Web服务调用来发出用户控件(yikes,我知道......这很有趣),但这也符合你的需求。
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>
我希望有所帮助!
答案 2 :(得分:-4)
TextBox myTextBox = new TextBox();
YourLiteralID.Controls.Add(myTextBox);