Frage

Ich habe eine Seite, auf der eine Liste mit einem von Elementen mit einer großen Anzahl von Elementen angezeigt wird, von denen jede eine boolesche Eigenschaft hat, die einen aktivierten und einen deaktivierten Zustand darstellt.

Ich muss dem Benutzer einen Link für jedes Listenelement zur Verfügung stellen, und der Link -Text muss den entgegengesetzten Status anzeigen (wenn das Element aktiviert ist, muss der Link -Text 'Deaktivieren' angezeigt werden).

Wenn der Benutzer auf den Link für deaktiviert klickt, muss der entsprechende Link -Text für das Element in "Aktivieren" (und umgekehrt) geändert werden.

Ich möchte nicht die gesamte Liste für jeden Klick neu laden, nur den Text des ActionLink selbst, daher lautet meine Frage:

Ist es möglich, nur einen ActionLink selbst zu aktualisieren, wenn der Benutzer auf den Link klickt, oder habe ich dies mit benutzerdefiniertem JavaScript verarbeitet?

War es hilfreich?

Lösung

Soweit ich mich erinnere, können Sie HTML -Attributen zum "A" -Tag hinzufügen, indem Sie bei den meisten Überladungen eine anonyme Klasse als letzter Param angeben.

Ab meinem Kopf kann dies wie folgt geschrieben werden:

Html.ActionLink("Name", "Action", "Controller", new { @class = 'updateId' });

(Möglicherweise können Sie dies mit einer ID tun, die gegenüber einer Klasse vorzuziehen wäre - wenn Sie nicht nur einen eindeutigen Klassennamen verwenden, um mehrere Elemente zu aktualisieren.)

Anschließend können Sie JavaScript verwenden, um auf die Klasse "UpdateID" zuzugreifen und das innere HTML zu ändern.

Im Fall von JQuery:

$("a.updateId").html("NewName");

Andere Tipps

Dies kann mit einer benutzerdefinierten Benutzersteuerung erfolgen, die im zu aktualisierenden Element enthalten ist. EIN Die Aufschrift der Lösung finden Sie hier. Es ist kein benutzerdefiniertes clientseitiges Skripten erforderlich.

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