c# - 如何让用户控件中的 javascript 在页面加载时可见性为 false 的面板内工作?

标签 c# javascript asp.net ajax user-controls

我正在开发一个 ASP.NET/C# 项目,在该项目中,我们将用户控件放入 AJAX 面板中,该面板的可见性在页面加载时设置为 false。一旦用户提交一些参数,该面板的可见性就会设置为 true。然而,虽然一旦设置并提交了这些参数,用户控件和所有其他面板内容都是可见的,但 uc 的 javascript 函数不起作用。

如果不是回发,我尝试通过在 Page_Load 中添加 Page.Controls.Add(controlID) 来解决此问题。当我执行此操作时,所有功能都已存在,但我知道有更好的方法来获取该功能,因为在这种情况下,控件被添加到页面两次。

编辑:我将 Controller 放在面板外部的 div 中,并从中获取了我想要的控件。但是,如果有人可以解释为什么未定义控件的 javascript 或提供将我的 UC 保留在面板中的解决方案,我将非常感激。

最佳答案

如果对于 asp 服务器控件,visible 属性设置为 false,则该控件甚至不会呈现在页面上。由于用户控件位于 ajax 服务器控件内部,因此不会呈现用户控件。 Javascript 代码由浏览器执行,因此它必须存在于页面上才能运行。 如果您可以将 css 属性 display: none 设置为隐藏,将 display: block 设置为显示 ajax 服务器控件,则用户控件及其 javascript 将在页面上呈现,但对于我设置为 display: none 的 css 属性则对用户隐藏,所以它的 javascript 将被执行。

要设置ajax服务器控件的显示属性,可以使用:ajaxControl.Styles.Add("display", "none")。 希望这对您有帮助。

关于c# - 如何让用户控件中的 javascript 在页面加载时可见性为 false 的面板内工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25317668/

相关文章:

c# - 在没有 GPS 的情况下获取经纬度 (Windows Mobile)

javascript - 将带有样式的 SVG 转换为 PDF

javascript - 我如何使用Vue js从URL获取参数

c# - 在 gridview 行上打开模态单击

c# - 通过 C# 中的属性检索嵌套 Powershell 对象的值

c# - 将字符串拆分为多个字母和数字段

c# - 如何根据自然数验证字段?

JavaScript 图表 API : Flot jQuery Plugin OR Google Visualization?

asp.net - 使用 SecretManager 创建 .NET secret

javascript - 获取子属性包含值的对象