是否可以创建一个 ASP.NET 服务器控件来打包一些将在设计时而不是运行时发送到 aspx 页面的 javascript?我正在尝试创建一个具有“默认”javascript 的控件。我可以使用 RegisterClientScriptBlock 添加 jvascript,但是 Web 开发人员无法修改 javascript - 在这种情况下,它在设计时不可用。有没有办法更改 ToolBox 属性,以便当 Web 开发人员将控件放到页面上时,javascript 也会添加到单独的脚本标记中?
mcgreeder
问问题
223 次
1 回答
0
当我需要这样做时,我在将注入标签的控件上创建了一个属性,然后 Web 开发人员创建了一个 asp:literal 标签,该标签具有无可见性和禁用视图状态,具有他们需要的所有 JS。
然后在页面后面的代码中,他们将文字的文本注入服务器控件属性。
<asp:Literal ID="Literal_HtmlHeader" runat="server" Visible="false" EnableViewState="false">
<script></script>
<style></style>
</asp:Literal>
可能有更好的方法......但这对我来说既简单又有效。
protected void Page_Load(object sender, EventArgs e)
{
if (!String.IsNullOrEmpty(this.Literal_HtmlHeader.Text.Trim()))
{
//inject css and js into header.
Page.Header.Controls.Add(new LiteralControl(this.Literal_HtmlHeader.Text));
// or add to your control cause it knows how to add the tags so there is no duplication.
ServerControl c = new ServerControl();
c.HtmlHeaderCode = this.Literal_HtmlHeader.Text.Trim();
}
}
于 2009-06-29T14:01:21.233 回答