javascript - 在更新面板回发中注册ClientScriptBlock

标签 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)

没有有效...我在这里缺少什么吗?

最佳答案

我认为这些方法都行不通,因为(我认为,尽管我可能是错的)这些方法只能通过将脚本添加到 html 页面表单的开头或结尾来操作嗯>。您可能能够将脚本直接渲染到ajax响应中,比如在更新面板中使用文字控件,但我记得有一些问题。已经过去几年了,但似乎是沿着这个问题的思路:SCRIPT tag removed from AJAX response in Internet Explorer 。注意:他们显然通过对作为响应发送的 html 进行一些调整来解决了他们的问题。一个稍微安全的选择是在更新面板中包含某种隐藏的输入或内容,其中包含您需要的一切,并且具有某种仅在更新面板更新并触发时运行的 JavaScript根据隐藏的输入或内容关闭某些内容。当然,这很容易成为设置和维护的麻烦(除非您可能使用某些 javascript 库提供的某种通用事件机制)。

关于javascript - 在更新面板回发中注册ClientScriptBlock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12161879/

相关文章:

javascript - 如何在 javascript 或 jquery 中向字符串添加一些数字

c# - 如何在 ASP.NET MVC 中的 Javascript 中输入 Razor(不带引号)

c# - GridView 固定 header 溢出容器

c# - .NET 应用程序链接器的状态(又名 "Please Sir, May I have a Linker"2009 版)

.net - RichTextBox 不显示 ' 并显示一个菱形,而不是里面有一个问号

javascript - 从文件夹中运行 Meteor

javascript - 标签式菜单动画

asp.net - NPOI - 保存从模板文件创建的工作簿

asp.net - DropDownList.SelectedValue 不正确

vb.net - 快速连续停止然后启动同一个后台工作程序