ClientScriptManager.RegisterForEventValidation Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Registriert einen Ereignisverweis für die Validierung.
Überlädt
RegisterForEventValidation(String, String) |
Registriert einen Ereignisverweis für die Validierung bei einer eindeutigen Steuerelement-ID und Ereignisargumenten, die das Clientsteuerelement darstellen, das das Ereignis generiert. |
RegisterForEventValidation(String) |
Registriert einen Ereignisverweis für die Validierung bei einer eindeutigen Steuerelement-ID, die das Clientsteuerelement darstellt, das das Ereignis generiert. |
RegisterForEventValidation(PostBackOptions) |
Registriert einen Ereignisverweis für die Validierung bei PostBackOptions. |
RegisterForEventValidation(String, String)
Registriert einen Ereignisverweis für die Validierung bei einer eindeutigen Steuerelement-ID und Ereignisargumenten, die das Clientsteuerelement darstellen, das das Ereignis generiert.
public:
void RegisterForEventValidation(System::String ^ uniqueId, System::String ^ argument);
public void RegisterForEventValidation (string uniqueId, string argument);
member this.RegisterForEventValidation : string * string -> unit
Public Sub RegisterForEventValidation (uniqueId As String, argument As String)
Parameter
- uniqueId
- String
Eine eindeutige ID, die das Clientsteuerelement darstellt, das das Ereignis generiert.
- argument
- String
An das Clientereignis übergebene Ereignisargumente.
Ausnahmen
Die Methode wird vor der Render(HtmlTextWriter)-Methode aufgerufen.
Beispiele
Im folgenden Codebeispiel wird die Verwendung der RegisterForEventValidation Methode und der ValidateEvent Methode zum Registrieren eines Rückrufs für die Überprüfung veranschaulicht und überprüft, ob der Rückruf von der Seite stammt. Um die im Beispiel gezeigte Überprüfung zu verbessern, können Sie den Gültigkeitsprüfungsparameter argument
so ändern, dass informationen enthalten, die dem Benutzer spezifisch sind, z. B. eine Identität oder Rolle.
<%@ Page Language="C#" %>
<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server" >
string _cbMessage = "";
// Define method that processes the callbacks on server.
public void RaiseCallbackEvent(String eventArgument)
{
try
{
Page.ClientScript.ValidateEvent(button1.UniqueID, this.ToString());
_cbMessage = "Correct event raised callback.";
}
catch (Exception ex)
{
_cbMessage = "Incorrect event raised callback.";
}
}
// Define method that returns callback result.
public string GetCallbackResult()
{
return _cbMessage;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ClientScriptManager cs = Page.ClientScript;
String cbReference = cs.GetCallbackEventReference("'" +
Page.UniqueID + "'", "arg", "ReceiveServerData", "",
"ProcessCallBackError", false);
String callbackScript = "function CallTheServer(arg, context) {" +
cbReference + "; }";
cs.RegisterClientScriptBlock(this.GetType(), "CallTheServer",
callbackScript, true);
}
}
protected override void Render(HtmlTextWriter writer)
{
Page.ClientScript.RegisterForEventValidation(button1.UniqueID, this.ToString());
base.Render(writer);
}
</script>
<script type="text/javascript">
var value1 = new Date();
function ReceiveServerData(arg, context)
{
Message.innerText = arg;
Label1.innerText = "Callback completed at " + value1;
value1 = new Date();
}
function ProcessCallBackError(arg, context)
{
Message.innerText = 'An error has occurred.';
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>CallBack Event Validation Example</title>
</head>
<body>
<form id="Form1" runat="server">
<div>
Callback result: <span id="Message"></span>
<br /> <br />
<input type="button"
id="button1"
runat="server"
value="ClientCallBack"
onclick="CallTheServer(value1, null )"/>
<br /> <br />
<asp:Label id="Label1" runat="server"/>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Dim _cbMessage As String = ""
' Define method that processes the callbacks on server.
Public Sub RaiseCallbackEvent(ByVal eventArgument As String) _
Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent
Try
Page.ClientScript.ValidateEvent(button1.UniqueID, Me.ToString())
_cbMessage = "Correct event raised callback."
Catch ex As Exception
_cbMessage = "Incorrect event raised callback."
End Try
End Sub
' Define method that returns callback result.
Public Function GetCallbackResult() _
As String Implements _
System.Web.UI.ICallbackEventHandler.GetCallbackResult
Return _cbMessage
End Function
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If (Not IsPostBack) Then
Dim cs As ClientScriptManager = Page.ClientScript
Dim cbReference As String = cs.GetCallbackEventReference("'" & _
Page.UniqueID & "'", "arg", "ReceiveServerData", "", _
"ProcessCallBackError", False)
Dim callbackScript As String = "function CallTheServer(arg, context) {" & _
cbReference & "; }"
cs.RegisterClientScriptBlock(Me.GetType(), "CallTheServer", _
callbackScript, True)
End If
End Sub
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
Page.ClientScript.RegisterForEventValidation(button1.UniqueID, Me.ToString())
MyBase.Render(writer)
End Sub
</script>
<script type="text/javascript">
var value1 = new Date();
function ReceiveServerData(arg, context)
{
Message.innerText = arg;
Label1.innerText = "Callback completed at " + value1;
value1 = new Date();
}
function ProcessCallBackError(arg, context)
{
Message.innerText = 'An error has occurred.';
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>CallBack Event Validation Example</title>
</head>
<body>
<form id="Form1" runat="server">
<div>
Callback result: <span id="Message"></span>
<br /> <br />
<input type="button"
id="button1"
runat="server"
value="ClientCallBack"
onclick="CallTheServer(value1, null )"/>
<br /> <br />
<asp:Label id="Label1" runat="server"/>
</div>
</form>
</body>
</html>
Im folgenden Codebeispiel wird die Verwendung der RegisterForEventValidation Methode zum Registrieren eines Rückrufs für die Überprüfung veranschaulicht.
<%@ Page EnableEventValidation="true" Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Register an option for event validation</title>
<script runat="server">
protected override void Render(HtmlTextWriter writer)
{
ClientScript.RegisterForEventValidation("DropDownList1", "This is Option 1");
ClientScript.RegisterForEventValidation("DropDownList1", "This is Option 2");
ClientScript.RegisterForEventValidation("DropDownList1", "This is Option 3");
// Uncomment the line below when you want to specifically register the option for event validation.
// ClientScript.RegisterForEventValidation("DropDownList1", "Is this option registered for event validation?");
base.Render(writer);
}
</script>
<script type="text/javascript">
function Initialize()
{
var oOption = document.createElement("OPTION");
document.all("DropDownList1").options.add(oOption);
oOption.innerText = "This is Option 1";
oOption = document.createElement("OPTION");
document.all("DropDownList1").options.add(oOption);
oOption.innerText = "This is Option 2";
oOption = document.createElement("OPTION");
document.all("DropDownList1").options.add(oOption);
oOption.innerText = "This is Option 3";
oOption = document.createElement("OPTION");
document.all("DropDownList1").options.add(oOption);
oOption.innerText = "Is this option registered for event validation?";
}
</script>
</head>
<body onload="Initialize();">
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>
<asp:Button ID="Button1" runat="server" Text="Postback to server for validation" />
</div>
</form>
</body>
</html>
<%@ Page EnableEventValidation="true" Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Register an option for event validation</title>
<script runat="server">
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
ClientScript.RegisterForEventValidation("DropDownList1", "This is Option 1")
ClientScript.RegisterForEventValidation("DropDownList1", "This is Option 2")
ClientScript.RegisterForEventValidation("DropDownList1", "This is Option 3")
' Uncomment the line below when you want to specifically register the option for event validation.
' ClientScript.RegisterForEventValidation("DropDownList1", "Is this option registered for event validation?")
MyBase.Render(writer)
End Sub
</script>
<script type="text/javascript">
function Initialize()
{
var oOption = document.createElement("OPTION");
document.all("DropDownList1").options.add(oOption);
oOption.innerText = "This is Option 1";
oOption = document.createElement("OPTION");
document.all("DropDownList1").options.add(oOption);
oOption.innerText = "This is Option 2";
oOption = document.createElement("OPTION");
document.all("DropDownList1").options.add(oOption);
oOption.innerText = "This is Option 3";
oOption = document.createElement("OPTION");
document.all("DropDownList1").options.add(oOption);
oOption.innerText = "Is this option registered for event validation?";
}
</script>
</head>
<body onload="Initialize();">
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" Text="Postback to server for validation" />
</div>
</form>
</body>
</html>
Siehe auch
Gilt für
RegisterForEventValidation(String)
Registriert einen Ereignisverweis für die Validierung bei einer eindeutigen Steuerelement-ID, die das Clientsteuerelement darstellt, das das Ereignis generiert.
public:
void RegisterForEventValidation(System::String ^ uniqueId);
public void RegisterForEventValidation (string uniqueId);
member this.RegisterForEventValidation : string -> unit
Public Sub RegisterForEventValidation (uniqueId As String)
Parameter
- uniqueId
- String
Eine eindeutige ID, die das Clientsteuerelement darstellt, das das Ereignis generiert.
Beispiele
Das folgende Beispiel zeigt, wie Sie die RegisterForEventValidation Methode und die ValidateEvent Methode verwenden, um einen Rückruf für die Überprüfung zu registrieren, und wie Sie überprüfen, ob der Rückruf von der Seite stammt.
<%@ Page Language="C#" %>
<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server" >
string _cbMessage = "";
// Define method that processes the callbacks on server.
public void RaiseCallbackEvent(String eventArgument)
{
try
{
Page.ClientScript.ValidateEvent(button1.UniqueID);
_cbMessage = "Correct event raised callback.";
}
catch (Exception ex)
{
_cbMessage = "Incorrect event raised callback.";
}
}
// Define method that returns callback result.
public string GetCallbackResult()
{
return _cbMessage;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ClientScriptManager cs = Page.ClientScript;
String cbReference = cs.GetCallbackEventReference("'" +
Page.UniqueID + "'", "arg", "ReceiveServerData", "",
"ProcessCallBackError", false);
String callbackScript = "function CallTheServer(arg, context) {" +
cbReference + "; }";
cs.RegisterClientScriptBlock(this.GetType(), "CallTheServer",
callbackScript, true);
}
}
protected override void Render(HtmlTextWriter writer)
{
Page.ClientScript.RegisterForEventValidation(button1.UniqueID);
base.Render(writer);
}
</script>
<script type="text/javascript">
var value1 = new Date();
function ReceiveServerData(arg, context) {
Message.innerText = arg;
Label1.innerText = "Callback completed at " + value1;
value1 = new Date();
}
function ProcessCallBackError(arg, context) {
Message.innerText = 'An error has occurred.';
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>CallBack Event Validation Example</title>
</head>
<body>
<form id="Form1" runat="server">
<div>
Callback result: <span id="Message"></span>
<br /> <br />
<input type="button"
id="button1"
runat="server"
value="ClientCallBack"
onclick="CallTheServer(value1, null )"/>
<br /> <br />
<asp:Label id="Label1" runat="server"/>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Dim _cbMessage As String = ""
' Define method that processes the callbacks on server.
Public Sub RaiseCallbackEvent(ByVal eventArgument As String) _
Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent
Try
Page.ClientScript.ValidateEvent(button1.UniqueID)
_cbMessage = "Correct event raised callback."
Catch ex As Exception
_cbMessage = "Incorrect event raised callback."
End Try
End Sub
' Define method that returns callback result.
Public Function GetCallbackResult() _
As String Implements _
System.Web.UI.ICallbackEventHandler.GetCallbackResult
Return _cbMessage
End Function
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
If (Not IsPostBack) Then
Dim cs As ClientScriptManager = Page.ClientScript
Dim cbReference As String = cs.GetCallbackEventReference("'" & _
Page.UniqueID & "'", "arg", "ReceiveServerData", "", _
"ProcessCallBackError", False)
Dim callbackScript As String = "function CallTheServer(arg, context) {" & _
cbReference & "; }"
cs.RegisterClientScriptBlock(Me.GetType(), "CallTheServer", _
callbackScript, True)
End If
End Sub
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
Page.ClientScript.RegisterForEventValidation(button1.UniqueID)
MyBase.Render(writer)
End Sub
</script>
<script type="text/javascript">
var value1 = new Date();
function ReceiveServerData(arg, context)
{
Message.innerText = arg;
Label1.innerText = "Callback completed at " + value1;
value1 = new Date();
}
function ProcessCallBackError(arg, context)
{
Message.innerText = 'An error has occurred.';
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>CallBack Event Validation Example</title>
</head>
<body>
<form id="Form1" runat="server">
<div>
Callback result: <span id="Message"></span>
<br /> <br />
<input type="button"
id="button1"
runat="server"
value="ClientCallBack"
onclick="CallTheServer(value1, null )"/>
<br /> <br />
<asp:Label id="Label1" runat="server"/>
</div>
</form>
</body>
</html>
Hinweise
Weitere Informationen und Beispiele finden Sie in der RegisterForEventValidation Methode.
Siehe auch
Gilt für
RegisterForEventValidation(PostBackOptions)
Registriert einen Ereignisverweis für die Validierung bei PostBackOptions.
public:
void RegisterForEventValidation(System::Web::UI::PostBackOptions ^ options);
public void RegisterForEventValidation (System.Web.UI.PostBackOptions options);
member this.RegisterForEventValidation : System.Web.UI.PostBackOptions -> unit
Public Sub RegisterForEventValidation (options As PostBackOptions)
Parameter
- options
- PostBackOptions
Ein PostBackOptions-Objekt, das angibt, wie clientseitiges JavaScript zum Initiieren eines Postbackereignisses generiert wird.
Hinweise
Weitere Informationen und Beispiele finden Sie in der RegisterForEventValidation Methode.