Hinzufügen von onclick-Ereignis für MVC5 Url.Aktion
@Html.PagedListPager(Model, page =>Url.Action("GetOrderDetails",
new { page, sortOrder = ViewBag.CurrentSort }),
PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new AjaxOptions()
{ HttpMethod = "GET", UpdateTargetId = "gridTable" }))
Habe ich den oben genannten code in eine MVC5 anzeigen.
Frage: Ist es möglich, fügen Sie eine client-side-onclick-event-handler für die oben genannten Url.Aktion erzeugt-URL, indem Sie einige zusätzliche parameter zur Url.Aktions-code? wenn ja, dann wo in der Url.Aktion würde ich dies hinzufügen?
Den HTML-emittiert, indem Sie oben PagedListPager ist als unten.
<ul class="pagination"><li class="active"><a>1</a></li><li><a data-ajax="true" data-ajax-method="GET"
data-ajax-mode="replace" data-ajax-update="#gridTable" href="/Order_Details/GetOrderDetails?page=2&
amp;sortOrder=asc">2</a></li><li><a data-ajax="true" data-ajax-method="GET" data-ajax-mode="replace"
data-ajax-update="#gridTable" href="/Order_Details/GetOrderDetails?page=3&sortOrder=asc">3</a>
</li></ul>
ja kannst du machen ..du mit url.Aktion mit Anker-tag oder woanders??
Nicht ein Anker-tag. Ich habe meinen code zu zeigen, wie ich Sie benutze. Seine für Mvc PagedList Komponente.
Nicht ein Anker-tag. Ich habe meinen code zu zeigen, wie ich Sie benutze. Seine für Mvc PagedList Komponente.
InformationsquelleAutor Sunil | 2014-09-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht wirklich, Nein.
Dies ist, weil Sie auf Ereignisse passieren auf Elemente in HTML und
Url.Action
nicht ein element erstellen. Es gibt einfach ein string. Wenn dieser string ist Teil von einem element, dann Sie können fügen Sie einen click-handler an das element. Zum Beispiel, wenn Sie das tun:Dann können Sie einen click-Ereignishandler im client-seitigen code. ASP.NET MVC umfasst in der Regel die jQuery standardmäßig, so können Sie wahrscheinlich verwenden, dass:
Als ein Allgemeines Wort der Beratung, werden Sie wollen, um Ihre server-side-code-und client-seitigen code zu trennen. Ihre Ansichten haben viele der Orte, die client-side code, gibt es keine Notwendigkeit, belasten Sie Ihren server-side code. Und Sie werden feststellen, dass Ihr gesamtes Projekt wird viel leichter zu pflegen, wenn Sie halten Ihr Anliegen getrennt.
Edit: Sie aktualisiert haben, ist die Frage, und wie es aussieht, sind Sie mit etwas genannt
PagedListPager
. Ich bin nicht vertraut mit dieser HTML-helper, aber vermutlich strahlt es einige HTML-markup der Seite. Was ist das markup? , Dass ist, was Sie verwenden werden für Ihre click-Handler. Wieder, Ihre client-side-click-Handler arbeiten auf der client-Seite code, nicht auf server-Seite code. Am besten trennen Sie die zwei.Ok. Naja, das Prinzip ist immer noch das gleiche. HTML-Elemente haben, klicken Sie auf Ereignisse, und Sie befestigen client-side-Handler auf die Ereignisse in JavaScript.
Ich fügte hinzu, die html-markup-emittiert, indem Sie diesen Helfer-Methode in meinem post.
Und das element muss das click-element behandelt? In einem Kommentar auf die Frage, sagen, sagte, Sie sind nicht mit einem Anker-tag, aber in der geposteten markup-Sie sind in der Tat mit einem anchor-tag. Nichts über die Antwort geändert hat. Sie brauchen nur zu identifizieren, die das HTML-element, dessen klicken Sie auf ein element, das Sie behandeln möchten, und befestigen Sie den handler.
Ich kann wahrscheinlich in ready-event der jQuery-look für alle Anker-Elemente in einem div mit der Paginierung der Klasse, und fügen Sie ein onclick-event-handler für jedes anchor-element. Aber es scheint ziemlich chaotisch auf diese Weise.
InformationsquelleAutor David