Zur Festsetzung der SubSonic 2.2 Kalender, Wie erhalte ich RegisterClientScriptInclude Anrufe zu machen, wenn die Steuerung nicht sichtbar ist?

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

Frage


Ich mochte das SubSonic 2.2 Kalender-Steuerelement. Es ist eine .NET-Implementierung des alten Dynarch Kalender hier .

Also tat ich, was jeder Entwickler tun würde, und ich klaute den gesamten Code für den Kalender und steckte es in eine eigene Bibliothek ist.

Leider ist der Kalender nicht schön, mit einem Update-Panel spielen.
Ich bekam Hilfe hier für den Kalender immer in einem Update-Panel arbeitet aber ich habe noch ein Problem haben wo, wenn der Kalender in einem Update-Panel ist, und es ist das Script-Tags Hinweis auf die JavaScript-Dateien auf der ersten Anfrage nicht sichtbar sie machen nicht.

Hier ist der Code, der das tut.

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

Also meine Frage ist, wie kann ich RegisterClientScriptInclude Anrufe an die Arbeit, wenn die Steuerung nicht sichtbar ist?

War es hilfreich?

Lösung

Ich landete einen zweiten Kalender setzte auf der Seite mit style = „display: none;“ nicht ein ziemlich fix, aber eine Ausbesserung nicht weniger.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top