Frage

Ist es in Ordnung zu benutzen __doPostBack() oder es wird nicht empfohlen, weil es generiert wird aus ASP.Net und wir sind uns nicht sicher, ob sie es in einer nächsten Version von geändert haben ASP.Net .

War es hilfreich?

Lösung

Ich würde davon abraten, da es sich um internes Zeug handelt ASP.NET und war nie dazu gedacht, direkt verwendet zu werden.

Stattdessen füge ich, wenn ich PostBack "manuell" auslösen muss, eine versteckte "serverseitige" Schaltfläche mit dem richtigen Klick hinzu:

<asp:Button id="btnDummy" runat="server" OnClick="Foo" style="display: none;" />

Dann ist das JS:

document.getElementById("<%=btnDummy.ClientID%>").click();

Auf diese Weise ist es mir egal wie postback passiert, ich löse einfach den natürlichen Fluss der Ereignisse aus.

Andere Tipps

Sie sollten es nicht direkt anrufen.Du solltest generieren der Javascript-Aufruf mithilfe von Funktionen in Page.ClientScript wie:

Dadurch wird sichergestellt, dass es immer kompatibel ist.

Ich denke, es ist einwandfrei, um direkt zu verwenden, und habe es ohne Fehlschlag verwendet, sondern nur eine JavaScript-Funktion.

Sie ändern es wahrscheinlich nicht, aber warum nennen Sie es direkt?
Ich denke, es ist eine bessere Strategie, um das Ereignis auszulösen (z. B. ein Knopfklick) und lässt die Steuerung den Nachback auslösen.

Ich muss den Postback direkt auslösen

Wir benutzen es überall und ich kann mir nicht vorstellen, dass es jemals aus Asp.net herausgezogen wird.Ich denke, dass die Fake / Hidden Button-Methode genauso hokie ist, wenn nicht schlechter.Wenn Sie den Fake-Button-Ansatz verwenden, erhalten Sie keine Option, das __eventargument zu übergeben.Ich benutze gerne __eventargument, um meine Daten besser an den Server weiterzuleiten, als verborgene Felder zu erstellen, da es für einen Hacker schwieriger ist, ein Kompromiss mehr zu kompromittieren, als einfach ein verstecktes Feld auf meine Seite zu veröffentlichen.Ich mag auch nicht die Idee, Felder und Steuerelemente auf der Seite zu erstellen, wenn sie nicht einmal angezeigt werden.Ich bin mir sicher, dass der Fake-Button-Ansatz wahrscheinlich leichter für einen Neuling-Codierer ist, zu verstehen.Das heißt, ich suche nach einem eleganten Weg, um dies zu nähern, aber immer noch selbst anrufen generasacodicetagpre.

in einigen Fällen.

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