DevTrain

Autor: Hannes Preishuber

Gottes vergessene Funktionen:RegisterOnSubmitStatement

Beim browsen in der Hilfe zu Visual Studio 2003 bin ich wieder mal über eine Funktion gestolpert deren Namen ich noch nie gehört hatte. Kein Beitrag, kein Posting und trotzdem da. Das RegisterOnSubmitStatement registriert ein JScript das beim Form Submit ausgeführt wird.

Praktisch und eigentlich schon oft benötigt, trotzdem nie verwendet! Und Google liefert dafür keine Deutschen Ergebnisse!

 

Zur Übung erzeugen wir ein JScript, das die Zeit in den Browser schreibt. Dieses Script wird mit der RegisterClientscriptblock Funktion registriert. Man kann das Script natürlcih auch einfach klassisch in den HTML Code einfügen.

Der entscheidende Punkt ist das Zuweisen der Funktion doClick mit dem RegisterOnSubmitStatement.

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
         Dim myScript As New Stringbuilder
        myScript.Append("<script language=JavaScript> function doClick() {")
        myScript.Append("heute=new Date();")
        myScript.Append("document.write('<H1>' + heute+ '</H1>');")
        myScript.Append("}</script>")
        RegisterClientScriptBlock("startup", myScript.ToString)
        RegisterOnSubmitStatement("submit", "doClick()")
End Sub


Die Verwendung des Keys "startup" stellt sicher, das das Script nur einmal zum Browser geschickt wird. Es könnte z.B. in einem mehrfach verwendeten Usercontrol ansonsten zu Jscript Fehlern kommen.

Damit wird im Browser folgender HTML Code erzeugt

<form name="Form1" method="post" action="regsiteronsubmit.aspx" language="javascript" onsubmit="doClick()" id="Form1">

Von den Register Kommandos gibt es eine ganze Reihe. Hier ein Auszug aus der Online Doku zu den Membern der Page Klasse die mit Register beginnen.

RegisterArrayDeclaration
Deklariert einen Wert, der beim Darstellen der Seite als ECMAScript-Arraydeklaration deklariert wird.

RegisterClientScriptBlock
Ermöglicht es ASP.NET-Serversteuerelementen, Clientskriptblöcke in Page auszugeben.

RegisterHiddenField
Ermöglicht es Serversteuerelementen, ein ausgeblendetes Feld im Formular automatisch zu registrieren. Dieses Feld wird an die Page gesendet, wenn das HtmlForm-Serversteuerelement dargestellt wird.

RegisterOnSubmitStatement
Ermöglicht einer Seite den Zugriff auf das OnSubmit-Ereignis des Clients. Das Skript muss ein Funktionsaufruf für an anderer Stelle registrierten Clientcode sein.

RegisterRequiresPostBack
Registriert ein Steuerelement, das die Behandlung von Postback erfordert.
RegisterRequiresRaiseEvent Registriert ein ASP.NET-Serversteuerelement, für das bei der Verarbeitung auf der Page ein Ereignis ausgelöst werden soll.

RegisterStartupScript
Ermöglicht es ASP.NET-Serversteuerelementen, Clientskriptblöcke in Page auszugeben.

RegisterViewStateHandler
Der Anzeigestatus der Seite wird beibehalten, sofern ein Aufruf erfolgt.

 


Erfasst am: 22.07.2003 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=865
© Copyright 2003 ppedv AG - http://www.ppedv.de