Registrierte Mitglieder und erstellen Sie Ihre Webentwicklungsdatenbank,
Standard -HTML -Formulare (Formularelemente) ermöglichen es Ihnen, Dateninformationen an eine andere Seite oder Anwendung zu übergeben und zu senden, um Formularelemente zu verwenden. In ASP.NET 1.x verwendet die Webseite den Liefermechanismus, um die Seitendaten an die Seite selbst zu übermitteln. Für ASP.NET 2.0 haben sich die Funktionen erweitert und können über Seiten hinweg einreichen. Lassen Sie uns diese neue Funktion diese Woche diskutieren.
Traditionelle Methode
Um den Vergleich zu erleichtern, möchte ich eine Minute damit verbringen, die alten Möglichkeiten zur Übertragung von Daten von Webseiten zu überprüfen. Die Tabellenelemente von HTML verfügen über ein Aktionsattribut, um festzulegen, welche Ressourcen (so genannte Ressourcen auf eine Webseite, ein Skript, ein Programm usw. beziehen), um diese übermittelten Daten zu verarbeiten. Der folgende Code ist ein Beispiel.
<html>
<Head> <titels> Beispiel HTML -Formular </title> </head>
<body>
<Form name = "frmample" methode = "post" action = "target_url">
<Eingabe type = "text" name = "fullname" id = "fullname" />
<input type = "button" name = "suruging" value = "subieren" /> />
</form>
</body> </html>
Der in der Textdomäne eingegebene Wert (der Name ist Vollname) wird an die Seite oder das Programm übermittelt, das durch das Aktionsattribut des Einheitselements angegeben ist. Für ASP.NET -Entwickler ist es äußerst ungewöhnlich, selbst wenn sie ein Standard -HTML -Formular verwendet haben.
Wenn ASP.NET -Entwickler vor der Aufgabe der Übergabe von Dateninformationen von einer Webseite an eine andere stehen, ist der Raum für die Wahl äußerst breit. Dazu gehören Sitzungsvariablen, Cookies, QueryString -Variablen, Caching -Cache) und sogar Server.Transfer, aber ASP.NET 2.0 bietet auch eine weitere Auswahl.
ASP.NET 2.0 bietet eine andere Möglichkeit, bereitzustellen
Beim Entwerfen von ASP.NET 2.0 erkannte Microsoft die Bedürfnisse, Daten zwischen den Webseiten zu überqueren. Mit diesem Bewusstsein wird ein Postbackurl -Attribut zur Steuerung von Taste (Taste) von ASP.NT hinzugefügt. Sie können angeben, wo das Formular und die oben genannten Daten geliefert werden, wenn der Benutzer übermittelt wird (dh, welchen URL -Wert von der Postbackurl -Eigenschaft angegeben ist). Im Allgemeinen ist die Cross -Page -Übertragung der Prozess der Verwendung von JavaScript im Hintergrund.
< %@ Page Language = "VB" %><!
<html> <kopf>
<title> cross postback Beispiel </title>
</head> <body>
<Form id = "frmcrossSSpostback1" methode = "post" runat = "server">
<ASP: label id = "lblname" runat = "server" text = "name:"> </assp: label>
<ASP: textbox id = "txtName" runat = "server"> < /ASP: textbox> <br />
<ASP: label id = "lble-mailaddress" runat = "server" text = "E-Mail:"> </Asp: Label>
<ASP: textbox id = "tXte-mailaddress" runat = "server"> < /ASP: textbox> <br />
<ASP: Button ID = "Btnsubmit" Runat = "Server" text = "surfen" postbackurl = "crossPostback2.aspx" />
</form> </body> </html>
Auf der ASP.NET-Seite in der ASP.NET-Seite enthält zwei Textdomänen (Name (Name) und E-Mail (E-Mail) sowie eine Schaltfläche (Schaltfläche), die zum Senden von Daten verwendet werden. Das Postback -Attribut dieser Einreichungs -Schaltfläche wird als eine weitere Webseite angegeben. Wenn das Formular übermittelt wird, können die Daten an diese Seite gesendet werden. HINWEIS: In diesem Beispiel wird das Formularelement durch das Nachhod -Attribut festgelegt, indem das Methode -Attribut festgelegt wird, um die Post -[2] -Partungsmethode während der Einreichung vorzunehmen. Dies ist jedoch nicht erforderlich, da alle Cross -Postback (Cross -Page -Lieferung) das verwendet Post -Methode gemäß dem Design.
Verwenden Sie die vorherige Seite
Wenn die ASP.NET -Seite über die Aufrufe der Cross -Page -Zustellung geladen wird, wird das ISPostback -Attribut des Objekts nicht ausgelöst. Es gibt jedoch ein Attribut, das als vorherige Seite (der vorherigen Seite) bezeichnet wird, diejenigen, die die Cross -Page -Lieferung angewendet haben.
Immer wenn eine Kreuz -Seite -Anforderung auftritt, ist die vorherige Seite der aktuellen Seite so erhalten, dass sie auf die gelieferten Seiten verweisen. Wenn die Erzeugung der Seite nicht aus der Stimulation der Cross -Page -Lieferung stammt oder die Seite in verschiedenen Programmgruppen liegt, wird die vorherige Seite nicht initialisiert.
Sie können feststellen, ob das Laden der Seite das Ergebnis der Cross -Page -Lieferung ist, indem Sie das vorherige Seite überprüfen. Wenn der Wert null ist, bedeutet dies, dass es sich um eine gewöhnliche Last handelt, und nicht der Nullwert gibt an, dass die Webseite von der Cross -Page -Zustellung stammt. Darüber hinaus enthält die Seitenklasse auch eine Methode namens iscrossspagePostback, die speziell verwendet wird, um festzustellen, ob die Seite das Ergebnis der Cross -Page -Zustellung ist.
Sobald Sie festgelegt sind, können Sie über die FindControl -Methode des vorherigen Page -Objekts auf die Steuerung auf der Aufrufseite zugreifen. Der folgende Code ist die zweite Seite in unserem Beispiel.
< %@ Page Language = "VB" %><!
<html> <kopf>
<title> Cross Postback Beispiel 2 </title>
</head> <body>
<script Language = "vb" runat = "server">
sub page_load ()
Wenn nicht (Page.PreviousPage ist nichts) dann)
wenn nicht
Response.write ("Name: + cType (vorherpage.findcontrol (" txtName "), textBox .text +" <br>)
Response.write ("E-Mail:" + cType (vorherpage.findcontrol ("TXTE-mailaddrss"), Textbox) .Text + "<br>")
Ende wenn
Ende wenn
Ende sub
</script> </body> </html>
Diese Seite bestimmt, ob sie durch Cross -Page -Lieferung aufgerufen wird. Wenn ja, greifen Sie auf die Werte aus, wenn Sie Seiten über die FindControl -Methode aufrufen, und konvertieren Sie die von dieser Methode erhaltene Steuerung in die Textbox -Steuerung und zeigen Sie dann den Inhalt ihres Textattribute (Text) an.
Sie können das gesamte vorherige Page -Objekt in einen Seitentyp umwandeln, der die Cross -Page -Lieferung auslöst. Mit dieser Methode können Sie auf die Seite der Seite und die Methode der Seite zugreifen. Bevor ich ein Beispiel für diese Technologie gebe, muss ich das erste Beispiel umschreiben, um einige globale Attribute enthalten. Der folgende Code ist die erste Liste von zwei Attributen.
< %@ page Language = "vb" %><!
<html> <kopf>
<title> cross postback Beispiel </title>
<script Language = "vb" runat = "server">
Öffentlicher Readonly -Immobilienname
erhalten
Gibt mich.txtname.text zurück
Ende bekommen
Beenden Sie Eigentum
Öffentliche Readonly-Eigentum E-Mailaddress
erhalten
Gibt mich zurück
Ende bekommen
Beenden Sie Eigentum
</script> </head> <body>
<Form id = "frmcrossSSpostback1" methode = "post" runat = "server">
<ASP: label id = "lblname" runat = "server" text = "name:"> </assp: label>
<ASP: textbox id = "txtName" runat = "server"> < /ASP: textbox> <br />
<ASP: label id = "lble-mailaddress" runat = "server" text = "E-Mail:"> </Asp: Label>
<ASP: textbox id = "tXte-mailaddress" runat = "server"> < /ASP: textbox> <br />
<ASP: Button ID = "Btnsubmit" Runat = "Server" text = "surfen" postbackurl = "crossPostback2.aspx" />
</form> </body> </html>
Jetzt, da die Attribute jetzt gebaut wurden, können Sie leicht darauf zugreifen. Um wachsam zu sein, muss das vorherige Seite der Seitenklasse in den richtigen Typ konvertiert werden, um auf die Attribute zuzugreifen. Dies kann implementiert werden, indem es in eine geeignete Seitenklasse konvertiert wird.
<%@ Page Language = "VB"%>< %@ Reference page = "~/crossPostback1.aspx" %>
<!
<html> <kopf>
<title> Cross Postback Beispiel 3 </title>
</head> <body>
<script Language = "vb" runat = "server">
sub page_load ()
Dim CPPPage als CrossPostback1_aspx
Wenn nicht (Seite.PreviousPage ist nichts) dann)
wenn nicht
if (page.previousPage.isvalid) dann
CPPPage = CTYPE (vorherige Seite, CrossPostback1_aspx)
Antwort.Write ("Name: + cppppage.name +" <br> ")
Response.write ("E-Mail:" + cpppage.e-mailadddress)
Ende wenn
Ende wenn
Ende wenn
Ende sub
</script> </body> </html>
Erklären Sie dies, es definiert eine Referenz auf die Anrufseite auf dem Kopfkopf, damit dieser Referenztyp im Code verwendet werden kann. Durch diese Referenz verwendet der tatsächliche VB.NET -Code die CTYPE -Funktion, um das vorherige Page -Objekt in einen geeigneten Typ umzuwandeln. Danach können diese Attribute wie die Codedemonstration verwendet werden.
Die Verwendung der Isvalid -Methode des vorherigen Seiteobjekts in der obigen Liste wird hier erinnert: Die Isvalid -Eigenschaft auf der vorherigen Seite stellt sicher, dass Sie alle rechtlichen Überprüfungen und Tests bestanden haben, bevor es funktioniert.
Zusammenfassen
Es gibt viele Anwendungen für die Übertragung von Datenparametern zwischen Webs, einschließlich der Aufrechterhaltung persönlicher Benutzerinformationen. Mit der Weblösung der Stamme können Sie wie die Verwendung von QueryString und Cookies bei der Einreichung auf eine andere Seite von einer Seite verweisen.
ASP.NET 1.1 Neben der Bereitstellung zusätzlicher Methoden können diese Methoden auch gut unterstützt werden, aber ASP.NET 2.0 basiert auf der Cross -Page -Lieferung, die diesbezüglich eine große Entwicklung von großer Entwicklung gemacht hat. Es macht eine Webverarbeitungsdaten von einer anderen Webseite einfach. Wenn Sie Ihr nächstes ASP.NET 2.0 -Programm entwickeln, müssen Sie die Vorteile dieses neuen Konzepts gut nutzen.