ClientScriptManager.ValidateEvent 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
验证客户端事件。
重载
ValidateEvent(String) |
验证使用 RegisterForEventValidation(String) 方法为事件验证注册的客户端事件。 |
ValidateEvent(String, String) |
验证使用 RegisterForEventValidation(String, String) 方法为事件验证注册的客户端事件。 |
ValidateEvent(String)
验证使用 RegisterForEventValidation(String) 方法为事件验证注册的客户端事件。
public:
void ValidateEvent(System::String ^ uniqueId);
public void ValidateEvent (string uniqueId);
member this.ValidateEvent : string -> unit
Public Sub ValidateEvent (uniqueId As String)
参数
- uniqueId
- String
表示生成事件的客户端控件的唯一 ID。
另请参阅
适用于
ValidateEvent(String, String)
验证使用 RegisterForEventValidation(String, String) 方法为事件验证注册的客户端事件。
public:
void ValidateEvent(System::String ^ uniqueId, System::String ^ argument);
public void ValidateEvent (string uniqueId, string argument);
member this.ValidateEvent : string * string -> unit
Public Sub ValidateEvent (uniqueId As String, argument As String)
参数
- uniqueId
- String
表示生成事件的客户端控件的唯一 ID。
- argument
- String
随客户端事件传递的事件参数。
例外
uniqueId
为 null
或空字符串 ("")。
示例
下面的代码示例演示如何使用 RegisterForEventValidation 方法和 ValidateEvent 方法注册回调进行验证,并验证回调是否源自页面。 若要改进此处所示的验证,可以修改验证 argument
参数以包含特定于用户的信息,例如标识或角色
<%@ 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>