Frage

Ich habe ein ASP.NET-Server-Steuerelement, die für eine bestimmte Funktionalität auf JQuery beruht. Ich habe versucht, als WebResource hinzuzufügen.

Mein Problem ist meine Methode, um die Jquery-Datei einschließlich fügt sie den Körper, oder die Form um genau zu sein:

this.Page.ClientScript.RegisterClientScriptInclude(...)

Die Alternative dazu ist es, als eine wörtliche im Kopf Tag hinzuzufügen:

LiteralControl include = new LiteralControl(jslink);
this.Page.Header.Controls.Add(include);

Das Problem dabei ist jedoch alle vorhandenen Code SRCs im Kopf, die JQuery nicht verwenden, wie JQuery danach geladen wird (ASP.NET die wörtliche an der Unterseite des Steuerbaum hinzufügt).

Gibt es eine praktische Art und Weise der Herstellung JQuery eine eingebettete Ressource, aber zuerst in den Kopf eingelegt? Oder soll ich jetzt aufgeben.

War es hilfreich?

Lösung 2

Update:

Ein weitaus einfacher Weg, es zu tun ist, einfach den Script-Tag hinzufügen, in Ihrem Skript und zeigen Sie auf den Google-Code-Hosting-dynamisch. z.

function include_dom(script_filename) {
    var html_doc = document.getElementsByTagName('head').item(0);
    var js = document.createElement('script');
    js.setAttribute('language', 'javascript');
    js.setAttribute('type', 'text/javascript');
    js.setAttribute('src', script_filename);
    html_doc.appendChild(js);
    return false;
}

include_dom("http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js");

Die Funktion wird genommen von diesem Artikel


Crecentfresh mich in der richtigen Richtung geschoben, habe ich auch gefunden

http://en.csharp-online.net /Creating_Custom_ASP.NET_AJAX_Client_Controls-IScriptControl.GetScriptReferences_Method .

obwohl

Mein Problem bleibt nach wie vor, fügt das Script die Verweise nach dem Skript im Kopf, aber ich denke, das ist ein Problem, das nicht gelöst werden kann. Ich habe entschieden, mich zu beantworten, aber auch upvoted crescentfresh.

Andere Tipps

Wenn Sie verpacken jQuery wollen und betten es in Ihrem eigenen Server Kontrolle Sie es an den Client dienen sollte das Script verwenden. Von der Spitze von meinem Kopf müssen Sie:

  1. hinzufügen jquery.js zu einem Projekt
  2. unter dem „Build Aktion“ Sach macht es zu einem Eingebettete Ressource
  3. in der AssemblyInfo.cs für Ihre Steuer Add

    [assembly: WebResource("<Your Server Control namespace>.jQuery.js", "application/x-javascript")]
    
  4. Machen Sie Ihre Steuer beerben System.Web.UI.ScriptControl (oder beim dest implementieren IScriptControl )

  5. außer Kraft setzen GetScriptReferences:

    protected override IEnumerable<ScriptReference>
    GetScriptReferences()
    {
    return new ScriptReference[] { 
        new ScriptReference("<Your Server Control namespace>.jQuery.js", this.GetType().Assembly.FullName),
    };
    }
    

Alle Ihre eigenen Client-Skript sollte drin sein Setup:

protected override IEnumerable<ScriptDescriptor> GetScriptDescriptors()

Welche wird dann die richtige Reihenfolge der Abhängigkeiten gewährleisten (dh jQuery wird Ihren eigenen Client-Skript zur Verfügung steht).

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