在 ASP.NET Webforms 中如何 运行 JavaScript 添加 UserControl 到页面

In ASP.NET Webforms how to run JavaScript when adding a UserControl to a page

我有一个包含许多字段的用户控件。在 ascx 中,我有一个 document.ready() 函数,我用 JQuery 隐藏了一些字段。在加载页面时的常规页面上,字段被隐藏并且 JavaScript 有效。

比方说,当用户单击按钮时,我将 UserControl 动态添加到页面。 UserControl 添加得很好,但是 JavaScript 没有 运行 隐藏其中最初应该隐藏的所有字段。

起初我以为是因为它无法与 document.ready 一起使用,因为我的实际页面已经加载。但后来我意识到 document.ready 不是 运行。因此,我只是将所有隐藏字段行包装在一个名为 initializeControls() 的函数中;并尝试在 UserControl 的 PageLoad 事件中调用它。我猜此时控件尚未完全加载到页面上,因为我收到了一堆未定义的错误。

有什么想法吗?

将以下代码添加到 c# 中单击事件代码的末尾。一旦您的 ASP.Net 服务器处理完成并加载页面,它将调用您的 javascript 函数。

ScriptManager.RegisterStartupScript(Me.Page, Me.GetType(), "Script", "functionName();", True)

其他,您可以先隐藏您的字段,然后使用 javascript 显示这些字段。

这是我的错。当控件在回发时动态添加时,它实际上进入了 document.ready。问题是,在 UserControls 中,我忘记了所有内容都会自动分配一个不同的 ID,而且我在 jquery 中隐藏了一个 div。相反,我制作了 div 面板并根据 ClientID 隐藏它。