ClientScriptManager.RegisterForEventValidation メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
検証用にイベント参照を登録します。
オーバーロード
RegisterForEventValidation(String, String) |
イベントを生成するクライアント コントロールを表す一意のコントロール ID とイベント引数を使用して、検証用にイベント参照を登録します。 |
RegisterForEventValidation(String) |
イベントを生成するクライアント コントロールを表す一意のコントロール ID を使用して、検証用にイベント参照を登録します。 |
RegisterForEventValidation(PostBackOptions) |
PostBackOptions を使用して、検証用にイベント参照を登録します。 |
RegisterForEventValidation(String, String)
イベントを生成するクライアント コントロールを表す一意のコントロール ID とイベント引数を使用して、検証用にイベント参照を登録します。
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)
パラメーター
- uniqueId
- String
イベントを生成するクライアント コントロールを表す一意の ID。
- argument
- String
クライアント イベントで渡されるイベント引数。
例外
このメソッドが Render(HtmlTextWriter) メソッドの前に呼び出されます。
例
次のコード例では、 メソッドと メソッドをRegisterForEventValidationValidateEvent使用して検証用のコールバックを登録し、コールバックがページから発生したことを検証する方法を示します。 例に示されている検証を改善するために、ID やロールなどのユーザーに固有の情報を含む検証 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>
次のコード例では、 メソッドを RegisterForEventValidation 使用して検証用のコールバックを登録する方法を示します。
<%@ 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>
こちらもご覧ください
適用対象
RegisterForEventValidation(String)
イベントを生成するクライアント コントロールを表す一意のコントロール ID を使用して、検証用にイベント参照を登録します。
public:
void RegisterForEventValidation(System::String ^ uniqueId);
public void RegisterForEventValidation (string uniqueId);
member this.RegisterForEventValidation : string -> unit
Public Sub RegisterForEventValidation (uniqueId As String)
パラメーター
- uniqueId
- String
イベントを生成するクライアント コントロールを表す一意の ID。
例
次の例は、 メソッドと ValidateEvent メソッドをRegisterForEventValidation使用して検証用のコールバックを登録する方法と、コールバックがページから発生したことを検証する方法を示しています。
<%@ 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>
注釈
詳細と例については、 メソッドを RegisterForEventValidation 参照してください。
こちらもご覧ください
適用対象
RegisterForEventValidation(PostBackOptions)
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)
パラメーター
- options
- PostBackOptions
ポストバック イベントを開始するためにクライアントの JavaScript を生成する方法を指定する PostBackOptionsブジェクト。
注釈
詳細と例については、 メソッドを RegisterForEventValidation 参照してください。
こちらもご覧ください
適用対象
.NET