【发布时间】:2012-08-21 03:43:21
【问题描述】:
我们有一个由多个用户控件组成的 asp.net 页面,其中许多控件的 visible 属性设置为 false。
通过选择一个单选按钮,通过在代码隐藏中将visible 属性设置为true 来显示用户控件之一。发生这种情况时,我们希望运行一个 JavaScript 函数。该脚本已在页面的Page_Load 方法中使用ScriptManager.RegisterStartUpScript 注册。
我们怎样才能做到这一点?
我们尝试过的事情:
- 在用户控件中注册脚本(代码隐藏和标记)
- 尝试
ScriptManager上提供的其他一些方法 - 使用jQuery
$(document).ready()
但在所有情况下,脚本仅在页面加载/重新加载时执行。
唯一似乎有效的hack是调用pageLoad()函数内的函数,因为该函数在每次回发后都会被调用。
【问题讨论】:
-
首先怀疑 RegisterStartupScript 调用可能在 Page_Load 中的 !Page.IsPostback 块中,这会阻止它运行。你能发布你的代码隐藏吗?
-
RegisterStartupScript 是 Page_Load 中的第一条语句。我现在无法发布整个文件。
-
我不确定你的代码中还有什么,但一个简单的解决方法是在客户端控制所有单选按钮,然后在客户端也运行 js,这样可以防止不必要的前往服务器端(当然,除非有其他代码需要服务器端代码)
-
感谢您的建议,但我无法按照我想要的方式完成这项工作。相反,我现在更改了应用程序,因此不需要 UpdatePanels 或 PostBacks。这让事情变得更加可预测。
标签: javascript asp.net