jquery 플러그인에 전적으로 의존하는 사용자 정의 컨트롤이 있습니다. 모든 것이 정상적으로 작동하지만 컨트롤이 Visible = false로 설정되거나 해당 부모 중 하나가 Visible로 설정되지 않은 경우 문제가 발생합니다. 이상 적으로, 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이 올바르게로드 된 함수가 호출됩니다. 그러나 어떤 이유로 든 자바 스크립트 파일은로드되지 않으며 브라우저는로드 된 리소스 목록에 표시하지 않습니다.
문제에 대한 해결책이 있습니까? 아니면 제가 잘못하고있는 것이 있습니까? 나는 지금이 문제에 대해 정말로 무력하고 도움을 주시면 감사하겠습니다.
답장을 보내 주셔서 감사합니다. 이 문제는 아직 해결되지 않았으며, 언젠가는 지금 시도 할 것입니다. –