代码之家  ›  专栏  ›  技术社区  ›  Biff MaGriff

修复亚音速2.2日历时,如何使RegisterClientScriptInclude调用在控件不可见时呈现?

  •  1
  • Biff MaGriff  · 技术社区  · 15 年前


    here .

    所以我做了任何开发人员都会做的事情,我刷了日历的所有代码,并把它放在自己的库中。

    不幸的是,日历不能很好地使用更新面板。
    我得到了帮助 here 但是,为了让日历在更新面板中工作,我仍然有一个问题,如果日历在更新面板中,并且在第一次请求时不可见,则指向JavaScript文件的脚本标记不会呈现。

        protected override void OnPreRender(EventArgs e)
        {
            string csslink = "<link href='" + Page.ClientScript.GetWebResourceUrl(GetType(), IncludeAssemblyPrefix + "skin.theme.css") + "' rel='stylesheet' type='text/css' />";
            Page.Header.Controls.Add(new LiteralControl(csslink));
            Page.ClientScript.RegisterClientScriptInclude("CalendarMain", Page.ClientScript.GetWebResourceUrl(GetType(), IncludeAssemblyPrefix + "calendar.js"));
            Page.ClientScript.RegisterClientScriptInclude("CalendarSetup", Page.ClientScript.GetWebResourceUrl(GetType(), IncludeAssemblyPrefix + "calendar-setup.js"));
    
            string langPrefix = IncludeAssemblyPrefix + "lang.calendar-";
    
            if (String.IsNullOrEmpty(Language))
                Language = DEFAULT_LANGUAGE;
    
            if (Assembly.GetExecutingAssembly().GetManifestResourceStream(langPrefix + Language + ".js") == null)
                Page.ClientScript.RegisterClientScriptInclude("CalendarLanguage", Page.ClientScript.GetWebResourceUrl(GetType(), langPrefix + DEFAULT_LANGUAGE + ".js"));
            else
                Page.ClientScript.RegisterClientScriptInclude("CalendarLanguage", Page.ClientScript.GetWebResourceUrl(GetType(), langPrefix + Language + ".js"));
    
            base.OnPreRender(e);
        }
        public string IncludeAssemblyPrefix { get { return Assembly.GetExecutingAssembly().GetName().Name + "."; } }
    

    所以我的问题是,当控件不可见时,如何让RegisterClientScriptInclude调用工作?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Biff MaGriff    15 年前

    最后,我在页面上放置了第二个日历,style=“display:none;”不是一个漂亮的修复,而是一个修复。