更新面板PostBack中的RegisterClientScriptBlock



ASP。NET VB PostBack在更新面板中

我试图在这个错误上加载JS函数(关闭Loading overlay和弹出窗口,应该会出现错误)。当我尝试显示标签时,它可以毫无问题地工作(当然它被覆盖)。

Me.lblerrormsg.Visible = True 

我已经尝试了3种不同的方法来注册脚本:

Dim errorScript = "<script>alert('WTF');</script>" '<-- not even this works
Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "errorDemoManual",
     errorScript, True)
'Tried this one with the Panel & Page itself...
ScriptManager.RegisterStartupScript(pnlPatientInfo, pnlPatientInfo.GetType(), 
     "ErrorDemo", errorScript, True)
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "errorScript",
     errorScript, True)

没有工作。。。我这里有什么东西不见了吗??

我认为这些方法都不起作用,因为(我认为,尽管我可能错了)这些方法只能通过将脚本添加到html页面表单的开头或结尾来操作。您可能能够将脚本直接呈现到ajax响应中,比如在更新面板中使用文字控件,但我记得有一些问题。这已经过去几年了,但它似乎沿着这个问题的路线运行:从InternetExplorer中的AJAX响应中删除了SCRIPT标记。注意:他们显然通过对作为响应发送的html进行一些调整来解决了他们的问题。一个有点安全的选择是在更新面板中有某种隐藏的输入或内容,它包含了您所需要的一切,并且有某种javascript,它只在更新面板时运行,并让它根据隐藏的输入和内容触发一些东西。当然,这很容易成为设置和维护的麻烦(除非您使用的是一些javascript库提供的某种通用event机制)。

问题是我需要使用RadScriptManager-Telerik UpdatePanels的一部分来让它工作。

RadScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "errorDemoManual", "errorDemoManual();", True)

相关内容

  • 没有找到相关文章

最新更新