编辑:
我通过开发人员工具检查了页面,他们都在脚本块中放置了一个带有函数调用的脚本块。通过母版页运行的脚本块将脚本块放在页面的较高位置,距表单顶部几行。从页面调用的那些将它们与表单元素末尾附近的其他脚本块一起放置。我不确定这对任何人是否意味着什么,但这似乎与我有关。
原始问题
我有一个多页面应用程序,在该应用程序中,我在每个页面上多次使用 ScriptManager 的 RegisterStartupScript 方法。我们有一个母版页,所以我决定放置一个公共函数,它只接受名称和可选的不同脚本文本并在那里注册启动脚本,这样我们就可以对启动脚本进行更小、更简单的函数调用,并且可以访问从使用母版页的每个页面。这是功能:
Public Sub RunStartupScript( ByVal name As String, ByVal Optional script As String = "")
If script = "" Then
script = name & "();"
End If
ScriptManager.RegisterStartupScript(Me, [GetType](), name, script, True)
End Sub
我在母版页的 aspx 中也有脚本管理器,当使用此功能时,它确实可以工作并运行脚本,但仅用于初始页面加载。任何后续的异步回发都不会运行任何已经运行的脚本。
Master.RunStartupScript("SomePredefinedJavaScriptFunction")
如果我把这个确切的功能代码放在特定页面后面的代码中,它就可以正常工作并且可以在任何回发时运行。当该功能归母版页所有时,为什么这不能正常工作?
有什么想法吗?