Ermöglicht asynchrone Rückrufe in asp.net user-controls
Was ist der ideale Weg, um zu ermöglichen asynchrone Ajax...-wie Rückrufe in asp.net Benutzer-Kontrolle.
Das aktuelle design hat eine asp.net Seite mit mehreren user-controls mit intermittierenden post-Rücken und Seite neu geladen.
Ich versuche zu übernehmen, kein Neuladen der Seite Erfahrung, ohne die Verwendung von JavaScript.
Ist das möglich?
Wenn nicht, wie gehe ich über die Einbindung einer kein Neuladen der Seite unified Erfahrung in diesem Szenario?
- Leider, ich glaube nicht, dass es möglich ist, zu tun, was du bist suchen für. Darf ich Fragen, warum Sie sich für eine Lösung, die nicht JavaScript verwenden? Hast du kontrolliert, dass die trigger-auto-postback, dass Sie nur mit aktiviertem JavaScript. Ist es aufgrund einer Vorliebe, oder progressive enhancement?
- Ist dies nicht möglich
- Ich versuche zu vermeiden, auto-postback-oder Seite neu geladen. Und... Nein.... entfernen JS ...ist nicht das Ziel hier, versuchen aber die Rückrufe et al auf der server-Seite ist. Bearbeitung von Fragen für Klarheit.
- Verwenden Sie eine update-panel dann.. Es verwendet javascript, hinter den kulissen, aber Sie nicht haben, um Ihre Hände schmutzig mit js (es sei denn, Sie möchten)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine Möglichkeit zu vermeiden, JavaScript zusammen. Sie können so etwas wie eine
UpdatePanel
so dass Sie nicht haben, um den code selbst schreiben, aber JavaScript ist immer noch hinter den kulissen.ASP.NET im Allgemeinen kann nicht wirklich funktionieren ohne JavaScript, da abgesehen von den Tasten, jedes andere Steuerelement wird ein postback verwendet die
__doPostBack
JavaScript-Funktion.einem postback tut es
BEARBEITEN
Den meisten harmonische Weg zu ajaxify Ihre server Steuerung ist wahrscheinlich, um wickeln Sie es in ein
UpdatePanel
:Gibt es in der Tat zwei mögliche Lösungen für dein problem:
Update Panel
Als viele jetzt erwähnt haben, könnten Sie wickeln Sie Ihre vorhandenen Steuerelemente in einem
UpdatePanel
(link) Dies jedoch immer noch bewirkt, dass der Inhalt des Panels zur post zurück an den server, aber ist bei weitem der einfachste und Schnellste zu implementieren, mit der größte, bemerkbar, usability-Verbesserung.Asynchrone Rückrufe
Verwendung der Asynchronen Callback-in .NET (link) können Sie mit viel mehr Steuerung senden Daten zu und von Ihrem javascript-Dateien;
Führen Sie server-side-Methoden durch den Aufruf einer bestimmten javascript-Funktion, die Sie registrieren sich auf der start-Seite:
Dieser angeschlossen ist, durch die Umsetzung der
ICallbackEventHandler
Schnittstelle gibt zwei Methoden, nämlich:RaiseCallbackEvent
: Das Ereignis, das aufgerufen wird, wenn Sie das senden von Daten aus dem javascript-client und enthält ein argument variable. (Mit der Verwendung vonJSON
diese einzelne variable obsticle ist leicht zu überwinden.)GetCallbackResult
: Nach dem Abschluss Ihrer server-side-Methode können Sie ein Ergebnis in form einer Zeichenfolge, enthält alles, was Sie benötigen, zurück auf Ihre Seite.Dieser ist sehr gut geeignet für lang laufende Prozesse Rückgabe einer Bestätigung oder überprüfung der einfachen Bedingungen vor der Buchung vollständig zurück und machen eine riesige usability-Verbesserung.
Kombination dieser beiden Methoden ist möglich und die Suche nach einem median zwischen posting-server-Steuerelemente zurück (Gitter, Dropdowns etc.) und überprüfung bestimmter Voraussetzungen (server-Seite), ohne Buchung zurück nur zu finden, einige Bedingungen nicht erfüllt wurden.
Wenn Sie suchen eine schnelle Art und Weise zu integrieren, ein "no reload" - Erfahrung, ohne das schreiben von benutzerdefinierten JavaScript, kann man sich bei der ASP-UpdatePanel - http://ajax.net-tutorials.com/controls/updatepanel-control/
Es ist einfach zu setup, und Griffe "alles" für Sie. 🙂