Page.AddOnPreRenderCompleteAsync メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
非同期ページの開始イベント ハンドラー デリゲートおよび終了イベント ハンドラー デリゲートを登録します。
オーバーロード
AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler) |
非同期ページの状態情報を必要としない開始イベント ハンドラー デリゲートおよび終了イベント ハンドラー デリゲートを登録します。 |
AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler, Object) |
非同期ページの開始イベント ハンドラー デリゲートおよび終了イベント ハンドラー デリゲートを登録します。 |
AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler)
非同期ページの状態情報を必要としない開始イベント ハンドラー デリゲートおよび終了イベント ハンドラー デリゲートを登録します。
public:
void AddOnPreRenderCompleteAsync(System::Web::BeginEventHandler ^ beginHandler, System::Web::EndEventHandler ^ endHandler);
public void AddOnPreRenderCompleteAsync (System.Web.BeginEventHandler beginHandler, System.Web.EndEventHandler endHandler);
member this.AddOnPreRenderCompleteAsync : System.Web.BeginEventHandler * System.Web.EndEventHandler -> unit
Public Sub AddOnPreRenderCompleteAsync (beginHandler As BeginEventHandler, endHandler As EndEventHandler)
パラメーター
- beginHandler
- BeginEventHandler
BeginEventHandler メソッドへのデリゲート。
- endHandler
- EndEventHandler
EndEventHandler メソッドへのデリゲート。
例外
<async>
ページ ディレクティブが、true
に設定されていません。
- または -
AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler) メソッドは、PreRender イベントの後で呼び出されます。
BeginHandler または EndHandler が null
です。
例
次のコード例では、非同期要求を使用して、ローカル Web サーバーの既定のページの HTML ソース コードを TextBox コントロールに表示します。
重要
この例には、ユーザー入力を受け付けるテキスト ボックスがあります。これにより、セキュリティが脆弱になる可能性があります。 既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。 詳細については、「スクリプトによる攻略の概要」を参照してください。
<%@ page language="C#" Async="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
System.Net.WebRequest myRequest;
void Page_Load(object sender, EventArgs e)
{
Label1.Text = "Page_Load: thread #" + System.Threading.Thread.CurrentThread.GetHashCode();
BeginEventHandler bh = new BeginEventHandler(this.BeginGetAsyncData);
EndEventHandler eh = new EndEventHandler(this.EndGetAsyncData);
AddOnPreRenderCompleteAsync(bh, eh);
// Initialize the WebRequest.
string address = "http://localhost/";
myRequest = System.Net.WebRequest.Create(address);
}
IAsyncResult BeginGetAsyncData(Object src, EventArgs args, AsyncCallback cb, Object state)
{
Label2.Text = "BeginGetAsyncData: thread #" + System.Threading.Thread.CurrentThread.GetHashCode();
return myRequest.BeginGetResponse(cb, state);
}
void EndGetAsyncData(IAsyncResult ar)
{
Label3.Text = "EndGetAsyncData: thread #" + System.Threading.Thread.CurrentThread.GetHashCode();
System.Net.WebResponse myResponse = myRequest.EndGetResponse(ar);
result.Text = new System.IO.StreamReader(myResponse.GetResponseStream()).ReadToEnd();
myResponse.Close();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>
Page.AddOnPreRenderCompleteAsync Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:label id="Label1" runat="server">
Label 1</asp:label><br />
<asp:label id="Label2" runat="server">
Label 2</asp:label><br />
<asp:label id="Label3" runat="server">
Label 3</asp:label><br />
<asp:textbox id="result" runat="server" textMode="multiLine" ReadOnly="true" columns="80" rows="25" />
</form>
</body>
</html>
<%@ page language="VB" Async="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Dim myRequest As System.Net.WebRequest
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Label1.Text = "Page_Load: Thread #" & System.Threading.Thread.CurrentThread.GetHashCode()
Dim bh As New BeginEventHandler(AddressOf Me.BeginGetAsyncData)
Dim eh As New EndEventHandler(AddressOf Me.EndGetAsyncData)
Me.AddOnPreRenderCompleteAsync(bh, eh)
' Initialize the WebRequest object.
Dim address As String
address = "http://localhost/"
myRequest = System.Net.WebRequest.Create(address)
End Sub
Function BeginGetAsyncData(ByVal src As Object, ByVal args As EventArgs, ByVal cb As AsyncCallback, ByVal state As Object) As IAsyncResult
Label2.Text = "BeginGetAsyncData: Thread #" & System.Threading.Thread.CurrentThread.GetHashCode()
Return Me.myRequest.BeginGetResponse(cb, state)
End Function
Sub EndGetAsyncData(ByVal ar As IAsyncResult)
Label3.Text = "EndGetAsyncData: Thread #" & System.Threading.Thread.CurrentThread.GetHashCode()
Dim myResponse As System.Net.WebResponse
myResponse = Me.myRequest.EndGetResponse(ar)
Dim reader As New System.IO.StreamReader(myResponse.GetResponseStream())
result.Text = reader.ReadToEnd()
myResponse.Close()
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>
Page.AddOnPreRenderCompleteAsync Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:label id="Label1" runat="server">
Label 1</asp:label><br />
<asp:label id="Label2" runat="server">
Label 2</asp:label><br />
<asp:label id="Label3" runat="server">
Label 3</asp:label><br />
<asp:textbox id="result" runat="server" textMode="multiLine" ReadOnly="true" columns="80" rows="25" />
</form>
</body>
</html>
注釈
メソッドを AddOnPreRenderCompleteAsync 使用して、非同期 Web ページにハンドラーを追加します。
複数の非同期ハンドラーを登録できます。ただし、一度に実行されるハンドラーは 1 つだけです。 複数の非同期メソッドを同時に処理する場合は、1 つの BeginEventHandler メソッドを使用し、そのハンドラーから複数の非同期操作を起動する必要があります。
非同期ハンドラーは、 イベントと PreRenderComplete イベントの間でPreRender呼び出されます。
まず、(イベントを介して) すべての Page イベントが PreRender 実行され、次に登録されている BeginEventHandler 各メソッドが呼び出されます。 ハンドラーが完了すると、対応する EndEventHandler メソッドが呼び出されます。 複数の非同期ハンドラーがある場合は、次のハンドラーが呼び出されます。
登録された非同期イベント ハンドラーが呼び出されると、ページ イベントの残りの部分が、イベント以降に PreRenderComplete 呼び出されます。
こちらもご覧ください
適用対象
AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler, Object)
非同期ページの開始イベント ハンドラー デリゲートおよび終了イベント ハンドラー デリゲートを登録します。
public:
void AddOnPreRenderCompleteAsync(System::Web::BeginEventHandler ^ beginHandler, System::Web::EndEventHandler ^ endHandler, System::Object ^ state);
public void AddOnPreRenderCompleteAsync (System.Web.BeginEventHandler beginHandler, System.Web.EndEventHandler endHandler, object state);
member this.AddOnPreRenderCompleteAsync : System.Web.BeginEventHandler * System.Web.EndEventHandler * obj -> unit
Public Sub AddOnPreRenderCompleteAsync (beginHandler As BeginEventHandler, endHandler As EndEventHandler, state As Object)
パラメーター
- beginHandler
- BeginEventHandler
BeginEventHandler メソッドへのデリゲート。
- endHandler
- EndEventHandler
EndEventHandler メソッドへのデリゲート。
- state
- Object
イベント ハンドラーの状態情報を格納しているオブジェクト。
例外
<async>
ページ ディレクティブが、true
に設定されていません。
- または -
AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler) メソッドは、PreRender イベントの後で呼び出されます。
BeginHandler または EndHandler が null
です。
例
次のコード例では、非同期要求を使用して、ローカル Web サーバーの既定のページの HTML ソース コードを TextBox コントロールに表示します。
重要
この例には、ユーザー入力を受け付けるテキスト ボックスがあります。これにより、セキュリティが脆弱になる可能性があります。 既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。 詳細については、「スクリプトによる攻略の概要」を参照してください。
<%@ page language="C#" Async="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
System.Net.WebRequest myRequest;
void Page_Load(object sender, EventArgs e)
{
Label1.Text = "Page_Load: thread #" + System.Threading.Thread.CurrentThread.GetHashCode();
BeginEventHandler bh = new BeginEventHandler(this.BeginGetAsyncData);
EndEventHandler eh = new EndEventHandler(this.EndGetAsyncData);
AddOnPreRenderCompleteAsync(bh, eh);
// Initialize the WebRequest.
string address = "http://localhost/";
myRequest = System.Net.WebRequest.Create(address);
}
IAsyncResult BeginGetAsyncData(Object src, EventArgs args, AsyncCallback cb, Object state)
{
Label2.Text = "BeginGetAsyncData: thread #" + System.Threading.Thread.CurrentThread.GetHashCode();
return myRequest.BeginGetResponse(cb, state);
}
void EndGetAsyncData(IAsyncResult ar)
{
Label3.Text = "EndGetAsyncData: thread #" + System.Threading.Thread.CurrentThread.GetHashCode();
System.Net.WebResponse myResponse = myRequest.EndGetResponse(ar);
result.Text = new System.IO.StreamReader(myResponse.GetResponseStream()).ReadToEnd();
myResponse.Close();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>
Page.AddOnPreRenderCompleteAsync Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:label id="Label1" runat="server">
Label 1</asp:label><br />
<asp:label id="Label2" runat="server">
Label 2</asp:label><br />
<asp:label id="Label3" runat="server">
Label 3</asp:label><br />
<asp:textbox id="result" runat="server" textMode="multiLine" ReadOnly="true" columns="80" rows="25" />
</form>
</body>
</html>
<%@ page language="VB" Async="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Dim myRequest As System.Net.WebRequest
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Label1.Text = "Page_Load: Thread #" & System.Threading.Thread.CurrentThread.GetHashCode()
Dim bh As New BeginEventHandler(AddressOf Me.BeginGetAsyncData)
Dim eh As New EndEventHandler(AddressOf Me.EndGetAsyncData)
Me.AddOnPreRenderCompleteAsync(bh, eh)
' Initialize the WebRequest object.
Dim address As String
address = "http://localhost/"
myRequest = System.Net.WebRequest.Create(address)
End Sub
Function BeginGetAsyncData(ByVal src As Object, ByVal args As EventArgs, ByVal cb As AsyncCallback, ByVal state As Object) As IAsyncResult
Label2.Text = "BeginGetAsyncData: Thread #" & System.Threading.Thread.CurrentThread.GetHashCode()
Return Me.myRequest.BeginGetResponse(cb, state)
End Function
Sub EndGetAsyncData(ByVal ar As IAsyncResult)
Label3.Text = "EndGetAsyncData: Thread #" & System.Threading.Thread.CurrentThread.GetHashCode()
Dim myResponse As System.Net.WebResponse
myResponse = Me.myRequest.EndGetResponse(ar)
Dim reader As New System.IO.StreamReader(myResponse.GetResponseStream())
result.Text = reader.ReadToEnd()
myResponse.Close()
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>
Page.AddOnPreRenderCompleteAsync Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:label id="Label1" runat="server">
Label 1</asp:label><br />
<asp:label id="Label2" runat="server">
Label 2</asp:label><br />
<asp:label id="Label3" runat="server">
Label 3</asp:label><br />
<asp:textbox id="result" runat="server" textMode="multiLine" ReadOnly="true" columns="80" rows="25" />
</form>
</body>
</html>
注釈
AddOnPreRenderCompleteAsync非同期 Web ページに状態情報を必要とするハンドラーを追加するには、 メソッドを使用します。 パラメーターで渡されるオブジェクトには、 パラメーターで state
指定されたイベント ハンドラー デリゲートと パラメーターの間で情報を転送するためにアプリケーションが必要とする任意の beginHandler
オブジェクトを endHandler
指定できます。
複数の非同期ハンドラーを登録できます。ただし、一度に実行されるハンドラーは 1 つだけです。 複数の非同期メソッドを同時に処理する場合は、1 つの BeginEventHandler メソッドを使用し、そのハンドラーから複数の非同期操作を起動する必要があります。
非同期ハンドラーは、 イベントと PreRenderComplete イベントの間でPreRender呼び出されます。
まず、(イベントを介して) すべての Page イベントが PreRender 実行され、次に登録されている BeginEventHandler 各メソッドが呼び出されます。 ハンドラーが完了すると、対応する EndEventHandler メソッドが呼び出されます。 複数の非同期ハンドラーがある場合は、次のハンドラーが呼び出されます。
登録された非同期イベント ハンドラーが呼び出されると、ページ イベントの残りの部分が、イベント以降に PreRenderComplete 呼び出されます。
適用対象
.NET