La fijación de la SubSonic 2.2 Calendario, ¿Cómo llego llamadas RegisterClientScriptInclude para hacer que el control no es visible?

StackOverflow https://stackoverflow.com/questions/3925466

Pregunta


Me gustó mucho el control de SubSonic 2.2 calendario. Se trata de una aplicación .Net del antiguo calendario Dynarch encontró aquí .

Así que hice lo que cualquier desarrollador y robé todo el código para el calendario y lo puso en su propia biblioteca.

Por desgracia, el calendario no juega bien con un panel de actualización.
Recibí ayuda aquí para obtener el calendario de trabajo en un panel de actualización sin embargo todavía tengo un problema donde si el calendario está en un panel de actualización y no es visible en la primera solicitud de las etiquetas de script que apunta a los archivos JavaScript no hagan.

Este es el código que hace eso.

    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 + "."; } }

Así que mi pregunta es, ¿cómo consigo llamadas RegisterClientScriptInclude a trabajar cuando el control no es visible?

¿Fue útil?

Solución

Me acabó poniendo un segundo calendario en la página con style = "display: none;" no es una solución bastante pero una solución, no obstante.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top