注册启动脚本控制

时间:2008-11-28 19:05:55

标签: asp.net javascript controls

我正在寻找一个Web控件,我可以在我的aspx中注册客户端启动脚本,因为我讨厌在代码隐藏中注册!

到目前为止我所拥有的一个例子:

< Ben:StartupScript runat =“server”>

var form = document.getElementById(“<%= form1.ClientID%>”);

< /本:StartupScript>

目前,我正在重写控件的OnPreRender方法,将控件的内容呈现为字符串,然后使用页面上的ClientScript.RegisterStartupScript手动将该字符串注册为启动脚本。我还重写了Render方法,以便不呈现控件。我还应该注意,我将ParseChildren属性设置为false,并将PersistChildren属性设置为true。

所有似乎都运行良好,但我的控件允许其中的其他Web控件(如Button)。除了不直观之外,这可能导致运行时错误。我希望能够清除控件,但这是不可能的,因为<%...%>代码块。

那么,是否可以阻止开发人员嵌入子控件同时仍然允许代码块?

此外,这个想法有什么好处还是从根本上有缺陷?洛尔。

非常感谢,

2 个答案:

答案 0 :(得分:1)

这听起来是个好主意,但如果你花太多时间来对抗继承/默认行为,那么它可能比它的价值更麻烦

如果这是一次性问题,那么便宜的黑客解决方案就是直接将脚本嵌入母版页的标题中; - )

另一方面,允许开发人员将自己的脚本作为Web控件的子项嵌入可能很有用

答案 1 :(得分:0)

如果您使用母版页,请在您的部分添加另一个控件。这样,您就可以轻松地将css / js添加到子页面中的标题中。

ClientScript.RegisterScript主要用于用户/服务器控件,