我有一个自定义控件,它完全依赖于 jquery 插件。一切都按预期工作正常,但是当控件设置为 Visible = false 或其任何父项不可见时,就会出现问题。理想情况下,当 asp.net 控件设置为 Visible false 时,引擎不会呈现它,因此我的控件不会在页面加载时呈现。当控件不呈现时,它不会加载 javascript 资源,因此当控件出现在回发时,jquery 插件不会绑定。这是一个非常基本的问题,作为应该使用它的开发人员,他们只是将控件拖放到他们的页面上,假设它工作正常。我认为必须有一个解决方法。下面粘贴的是我如何加载资源。
ClientScriptManager cs = this.Page.ClientScript;
#region Loading JavaScript File(s)
string MenuPlugin = "MainMenuControl.Scripts.javascript_main.js";
cs.RegisterClientScriptResource(typeof(MainMenuControl.MenuControl), MenuPlugin);
string MenuInitializer = "MainMenuControl.Scripts.BuildMenu.js";
cs.RegisterClientScriptResource(typeof(MainMenuControl.MenuControl), MenuInitializer);
#endregion
#region Loading CSS File(s)
string cssUrl = Page.ClientScript.GetWebResourceUrl(this.GetType(), "MainMenuControl.Styles.MenuStyle.css");
HtmlLink cssLink = new HtmlLink();
cssLink.Href = cssUrl;
cssLink.Attributes.Add("rel", "stylesheet");
cssLink.Attributes.Add("type", "text/css");
this.Page.Header.Controls.Add(cssLink);
#endregion
#region Loading Image(s)
Page.ClientScript.GetWebResourceUrl(typeof(MainMenuControl.MenuControl), "MainMenuControl.Images.down.gif");
string script = string.Format(@"initializeMenu('{0}');", Page.ClientScript.GetWebResourceUrl(typeof(MainMenuControl.MenuControl), "MainMenuControl.Images.down.gif"));
Page.ClientScript.RegisterStartupScript(Page.GetType(), "InitImage", script, true);
#endregion
在代码的倒数第三行,我正在调用一个带有正确加载的图像 url 的函数。但由于某种原因,javascript 文件不会加载,并且任何浏览器都不会在加载的资源列表中显示它们。
有没有解决问题的方法,或者我做错了什么?我现在对这个问题真的很无助,希望能得到任何帮助。