Page.AddOnPreRenderCompleteAsync Yöntem

Tanım

Zaman uyumsuz bir sayfa için başlangıç ve bitiş olay işleyicisi temsilcilerini kaydeder.

Aşırı Yüklemeler

AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler)

Zaman uyumsuz bir sayfa için durum bilgisi gerektirmeyen başlangıç ve bitiş olay işleyicisi temsilcilerini kaydeder.

AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler, Object)

Zaman uyumsuz bir sayfa için başlangıç ve bitiş olay işleyicisi temsilcilerini kaydeder.

AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler)

Zaman uyumsuz bir sayfa için durum bilgisi gerektirmeyen başlangıç ve bitiş olay işleyicisi temsilcilerini kaydeder.

C#
public void AddOnPreRenderCompleteAsync (System.Web.BeginEventHandler beginHandler, System.Web.EndEventHandler endHandler);

Parametreler

beginHandler
BeginEventHandler

Yöntemin BeginEventHandler temsilcisi.

endHandler
EndEventHandler

Yöntemin EndEventHandler temsilcisi.

Özel durumlar

<async> Page yönergesi olarak trueayarlanmadı.

-veya-

AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler) yöntemi olaydan sonra çağrılırPreRender.

Örnekler

Aşağıdaki kod örneği, yerel Web sunucusunun varsayılan sayfasının HTML kaynak kodunu bir denetimde görüntülemek için zaman uyumsuz bir TextBox istek kullanır.

Önemli

Bu örnekte, olası bir güvenlik tehdidi olan kullanıcı girişini kabul eden bir metin kutusu vardır. Varsayılan olarak, ASP.NET Web sayfaları kullanıcı girişinin betik veya HTML öğeleri içermediğini doğrular. Daha fazla bilgi için bkz . Betik Açıklarına Genel Bakış.

ASP.NET (C#)
<%@ 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>

Açıklamalar

AddOnPreRenderCompleteAsync Zaman uyumsuz bir Web sayfasına işleyici eklemek için yöntemini kullanın.

Birden çok zaman uyumsuz işleyici kaydedebilirsiniz; ancak, aynı anda yalnızca bir işleyici çalışır. Birden çok zaman uyumsuz yöntemi aynı anda işlemek istiyorsanız, tek BeginEventHandler bir yöntem kullanmanız ve bu işleyiciden birden çok zaman uyumsuz işlem başlatmanız gerekir.

zaman uyumsuz işleyiciler ve PreRenderComplete olayları arasında PreRender çağrılır.

İlk olarak, tüm Page olaylar (olay aracılığıyla PreRender ) çalıştırılır ve ardından her kayıtlı BeginEventHandler yöntem çağrılır. İşleyici tamamlandığında ilgili EndEventHandler yöntem çağrılır. Birden çok zaman uyumsuz işleyici varsa, sonraki işleyici çağrılır.

Kayıtlı zaman uyumsuz olay işleyicileri çağrıldıktan sonra, olaydan başlayarak sayfa olaylarının geri kalanı çağrılır PreRenderComplete .

Ayrıca bkz.

Şunlara uygulanır

.NET Framework 4.8.1 ve diğer sürümler
Ürün Sürümler
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler, Object)

Zaman uyumsuz bir sayfa için başlangıç ve bitiş olay işleyicisi temsilcilerini kaydeder.

C#
public void AddOnPreRenderCompleteAsync (System.Web.BeginEventHandler beginHandler, System.Web.EndEventHandler endHandler, object state);

Parametreler

beginHandler
BeginEventHandler

Yöntemin BeginEventHandler temsilcisi.

endHandler
EndEventHandler

Yöntemin EndEventHandler temsilcisi.

state
Object

Olay işleyicileri için durum bilgilerini içeren bir nesne.

Özel durumlar

<async> Page yönergesi olarak trueayarlanmadı.

-veya-

AddOnPreRenderCompleteAsync(BeginEventHandler, EndEventHandler) yöntemi olaydan sonra çağrılırPreRender.

Örnekler

Aşağıdaki kod örneği, yerel Web sunucusunun varsayılan sayfasının HTML kaynak kodunu bir denetimde görüntülemek için zaman uyumsuz bir TextBox istek kullanır.

Önemli

Bu örnekte, olası bir güvenlik tehdidi olan kullanıcı girişini kabul eden bir metin kutusu vardır. Varsayılan olarak, ASP.NET Web sayfaları kullanıcı girişinin betik veya HTML öğeleri içermediğini doğrular. Daha fazla bilgi için bkz . Betik Açıklarına Genel Bakış.

ASP.NET (C#)
<%@ 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>

Açıklamalar

AddOnPreRenderCompleteAsync Zaman uyumsuz bir Web sayfasına durum bilgisi gerektiren işleyiciler eklemek için yöntemini kullanın. parametresinde state geçirilen nesne, uygulamanızın ve endHandler parametrelerinde beginHandler belirtilen olay işleyici temsilcileri arasında bilgi aktarmak için gerektirdiği herhangi bir nesne olabilir.

Birden çok zaman uyumsuz işleyici kaydedebilirsiniz; ancak, aynı anda yalnızca bir işleyici çalışır. Birden çok zaman uyumsuz yöntemi aynı anda işlemek istiyorsanız, tek BeginEventHandler bir yöntem kullanmanız ve bu işleyiciden birden çok zaman uyumsuz işlem başlatmanız gerekir.

zaman uyumsuz işleyiciler ve PreRenderComplete olayları arasında PreRender çağrılır.

İlk olarak, tüm Page olaylar (olay aracılığıyla PreRender ) çalıştırılır ve ardından her kayıtlı BeginEventHandler yöntem çağrılır. İşleyici tamamlandığında ilgili EndEventHandler yöntem çağrılır. Birden çok zaman uyumsuz işleyici varsa, sonraki işleyici çağrılır.

Kayıtlı zaman uyumsuz olay işleyicileri çağrıldıktan sonra, olaydan başlayarak sayfa olaylarının geri kalanı çağrılır PreRenderComplete .

Şunlara uygulanır

.NET Framework 4.8.1 ve diğer sürümler
Ürün Sürümler
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1