2011-04-19 40 views
0

我用下面的脚本调用javascript函数只有在我的页面在编辑模式:如何异步回发后调用javascript函数

protected void Page_PreRender(object sender, EventArgs e) 
{ 
    if (EditMode) 
     ClientScript.RegisterStartupScript("".GetType(), 
              "EnableSelectableKey", 
              "EnableSelectableForRolesLists();", 
              true); 
} 

后,我添加了一个更新面板,剧本还没有被称为。

如何解决这个问题?

回答

1

看一看:http://msdn.microsoft.com/en-us/library/bb383810.aspx

这应该指向你在正确的方向:)

+0

我很抱歉,但链接已无关的问题。 – 2014-10-25 16:02:37

+0

很确定它确实。请参阅Jamie Treworgy的答案,该答案也引用了完全相同的技术作为可能的解决方案,并提供了一种替代方案。答案也被接受... – Dave 2014-12-05 11:47:46

4

使用Sys.WebForms.PageRequestManager.endRequest作为Dave_Stott说是一种更清洁的方式来做到这一点(如果有这样的事情“干净“当谈到UpdatePanels和客户端/服务器交互时)。但你也可以简单地改变你的代码,使用ScriptManager,而不是ClientScript,它应该工作:

ScriptManager.RegisterStartupScript("".GetType(), 
              "EnableSelectableKey", 
              "EnableSelectableForRolesLists();", 
              true);