30 Stimmen

Wie verwendet man JQuery mit Master Pages?

Ich kann einfache Beispiele zum Laufen bringen, solange keine Masterseite involviert ist. Alles, was ich tun möchte, ist eine Schaltfläche klicken und haben es sagen "Hallo Welt" mit dem Javascript in einer .js-Datei, mit einer Master-Seite. Jede Hilfe sehr viel geschätzt :)

0voto

Scott Marlowe Punkte 7675

Ich habe auch mit den einfachsten Beispielen angefangen und hatte kein Glück. Schließlich musste ich die jquery.js-Datei hinzufügen außerhalb de la <head> Abschnitt der Musterseite. Das war die einzige Möglichkeit, wie ich in Firefox etwas zum Laufen bringen konnte (andere Browser habe ich noch nicht ausprobiert).

Ich musste auch die .js-Datei mit einer absoluten Adresse referenzieren. Ich bin mir nicht ganz sicher, was damit los ist.

0voto

n00b Punkte 3825

Adam Lassek verknüpft mit jQuery-Selektoren, obwohl ich denke, dass es sich lohnt, explizit die Auswahl von Elementen durch ihre Klasse, im Gegensatz zu ihren id.

z.B. Anstelle von $("#myButton").click(function() { alert('button clicked'); });

verwenden Sie stattdessen $(".myButtonCssClass").click(function() { alert('button clicked'); });

und fügen Sie der Schaltfläche die Klasse hinzu:

<asp:Button ID="myButton" runat="server" Text="Submit" CssClass="myButtonCssClass" />

Dies hat den Vorteil, dass man sich nicht darum kümmern muss, ob zwei Steuerelement-IDs auf die gleiche Weise "enden", und dass man den gleichen jQuery-Code auf mehrere Steuerelemente gleichzeitig anwenden kann (mit der gleichen CSS-Klasse).

0voto

Mike Punkte 16
  • PROBLEM --> bei der Verwendung von Site.Master-Seiten wird den ID-Namen der Steuerelemente (für ASP-Steuerelemente) die ContentPlaceHolderID vorangestellt. (Beachten Sie, dass dies kein Problem für Nicht-ASP-Steuerelemente ist, da sie nicht "umgedeutet" werden, d. h. sie werden einfach wie geschrieben angezeigt).

  • LÖSUNGEN:

      1. Am einfachsten --> ClientIDMode="Static" zur Definition des Asp-Steuerelements hinzufügen (oder mit Eigenschaften festlegen) in der Asp-Seite
    • Zu den Alternativen gehören:
      1. Hardcoding des ContentPlaceHolderID-Namens im js-Code z.B. "#ContentPlaceHolder1_controlName" - eek!!!!
      1. die <%= controlName.ClientID %> in der ASP-Seite zu verwenden und sie - dort - einer Variablen (oder einem Variablenobjekt) zuzuweisen. Die Variable (oder das Objekt in Punktnotation) kann dann in der externen js-Seite verwendet werden (HINWEIS: <%= controlName.ClientID %> kann nicht in externen js verwendet werden)
      1. Verwendung von CssClass mit einem eindeutigen (gleichen Namen wie die ID) in einer ASP-Seite und Bezugnahme auf das Steuerelement als ".controlName" anstelle von "#controlName"
      1. Verwendung des "[id$=_controlName]" anstelle von "#controlName" - dies beinhaltet eine kleine Suche und sucht nach einem Steuerelement, das mit dem eindeutigen Namen endet - auf diese Weise ist der Anfang irrelevant

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X