Update Panel PostBack中的RegisterClientScriptBlock

时间:2012-08-28 14:46:51

标签: javascript asp.net vb.net registerstartupscript

更新面板中的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)

没有有效......这里有什么我想念的吗?

2 个答案:

答案 0 :(得分:1)

我不认为其中任何一个都可以工作,因为(我认为,虽然我可能错了)这些方法只能通过将脚本添加到html页面表单的开头或结尾来进行操作。您可能能够将脚本直接呈现到ajax响应中,比如在更新面板中使用文字控件,但我记得有一些问题。这已经过了几年,但它似乎与这个问题有关:SCRIPT tag removed from AJAX response in Internet Explorer。注意:他们显然通过调整作为响应发送的html解决了他们的问题。一个有点安全的赌注是在你的更新面板中有一些隐藏的输入或内容,它们包含你需要的一切,并且有一些只在更新面板更新后才能运行的javascript根据隐藏的输入或内容取消某些内容。当然,这很容易成为设置和维护的难点(除非您使用某些javascript库提供的某种通用event机制)。

答案 1 :(得分:1)

问题是我需要使用RadScriptManager - Telerik UpdatePanels的一部分才能使其正常工作。

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