【发布时间】:2014-01-31 11:08:23
【问题描述】:
我想问有没有办法从字符串加载 ascx 控件?更准确地说:我喜欢在 sql 中创建/存储一个新的 .ascx,然后将其加载到网站。
【问题讨论】:
我想问有没有办法从字符串加载 ascx 控件?更准确地说:我喜欢在 sql 中创建/存储一个新的 .ascx,然后将其加载到网站。
【问题讨论】:
是的,你应该可以使用 ParseControl 函数来做你想做的事:
http://msdn.microsoft.com/en-us/library/kz3ffe28.aspx
来自 MSDN 的示例:
<%@ Page language="c#" Debug="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ASP.NET Example</title>
<script runat="server">
// System.Web.UI.TemplateControl.ParserControl;
// The following example demonstrates the method 'ParseControl' of class TemplateControl.
// Since TemplateControl is abstract, this sample has been written using 'Page' class which derives from
// 'TemplateControl' class.
// A button object is created by passing a string to contstruct a button using ASP syntax, to the
// 'ParseControl' method. This button is added as one of the child controls of the page and displayed.
void Page_Load(object sender, System.EventArgs e)
{
Control c = ParseControl("<asp:button text='Click here!' runat='server' />");
myPlaceholder.Controls.Add(c);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:placeholder id ="myPlaceholder" runat="server" />
</form>
</body>
</html>
【讨论】: