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)