我正在尝试以编程方式添加ScriptManager控件,但仅当页面上不存在该控件时。我发现了很多这样的例子,把逻辑放在Page_Init里面,这是有道理的(后来才意识到它不是有意义 - 参见底部编辑),但是在我的Init方法被击中之前我得到一个异常。以编程方式添加ScriptManager
protected void Page_Init(object sender, EventArgs e)
{
if (ScriptManager.GetCurrent(Page) == null)
{
ScriptManager sMgr = new ScriptManager();
Page.Form.Controls.AddAt(0, sMgr);
}
}
这让我觉得Sitecore会以某种方式进入。有没有人使用Sitecore成功完成这项工作?
谢谢。
编辑:我收到的例外如下:。“ID为‘filtersUpdatePanel’的控制需要一个ScriptManager在页面上任何需要它的控制之前,必须的ScriptManager出现”
编辑^ 2:这里真正发生的事情是,Page_Init在生命周期中为了附加ScriptManager(在我的情况下)太晚了。有了Init,所有的孩子事件都会先被触发,然后被触发。 UpdatePanel的init没有看到ScriptManager,所以它抛出了一个异常。将ScriptManager逻辑放在UpdatePanel init中解决了这个问题。
你能发布异常吗? – techphoria414 2012-03-07 21:20:41
你走了。这不会有帮助吗? – raynjamin 2012-03-08 14:40:09