更新面板中的 ASP.NET VB PostBack
我正在尝试加载一个 JS 函数来解决此错误(关闭加载覆盖层并弹出窗口,并出现错误)。当我尝试显示标签时,它可以正常工作(当然它被覆盖层覆盖)。
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响应中,比如在更新面板中使用文字控件,但我记得有一些问题。已经过去几年了,但似乎是沿着这个问题的思路:SCRIPT tag removed from AJAX response in Internet Explorer 。注意:他们显然通过对作为响应发送的 html 进行一些调整来解决了他们的问题。一个稍微安全的选择是在更新面板中包含某种隐藏的输入或内容,其中包含您需要的一切,并且具有某种仅在更新面板更新并触发时运行的 JavaScript根据隐藏的输入或内容关闭某些内容。当然,这很容易成为设置和维护的麻烦(除非您可能使用某些 javascript 库提供的某种通用事件
机制)。
关于javascript - 在更新面板回发中注册ClientScriptBlock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12161879/