Aracılığıyla paylaş


ScriptManager.RegisterDataItem Yöntem

Tanım

Kısmi sayfa işleme sırasında denetimlere özel veriler gönderir.

Aşırı Yüklemeler

RegisterDataItem(Control, String)

Kısmi sayfa işleme sırasında bir denetime özel veriler gönderir.

RegisterDataItem(Control, String, Boolean)

Kısmi sayfa işleme sırasında bir denetime özel veri gönderir ve verilerin JavaScript Nesne Gösterimi (JSON) biçiminde olup olmadığını gösterir.

RegisterDataItem(Control, String)

Kısmi sayfa işleme sırasında bir denetime özel veriler gönderir.

public:
 void RegisterDataItem(System::Web::UI::Control ^ control, System::String ^ dataItem);
public void RegisterDataItem (System.Web.UI.Control control, string dataItem);
member this.RegisterDataItem : System.Web.UI.Control * string -> unit
Public Sub RegisterDataItem (control As Control, dataItem As String)

Parametreler

control
Control

Verileri alan denetim.

dataItem
String

Denetime gönderilen veriler.

Özel durumlar

control, null değeridir.

yöntemi RegisterDataItem(Control, String, Boolean) bir geri gönderme sırasında çağrılır.

dataItem için controlzaten kayıtlıdır.

Örnekler

Aşağıdaki örnekte, zaman uyumsuz geri gönderme sırasında sayfadaki iki Label denetime veri gönderme işlemi gösterilmektedir. Denetimler Label bir UpdatePanel denetimin içinde değil.

Not

Bu örnekte gönderilen veriler yalnızca çizim içindir. Gerçek bir uygulamada, sunucudan RegisterDataItem özel veri göndermek için yöntemini kullanırsınız.

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void Page_Load(object sender, EventArgs e)
    {
        if (ScriptManager1.IsInAsyncPostBack)
        {
            System.Web.Script.Serialization.JavaScriptSerializer json =
                new System.Web.Script.Serialization.JavaScriptSerializer();
            ScriptManager1.RegisterDataItem(Label1, DateTime.Now.ToString());
            ScriptManager1.RegisterDataItem(Label2, json.Serialize("more data"), true);
        }
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ScriptManager RegisterDataItem Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <script type="text/javascript" language="javascript">
        Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(PageLoadingHandler);
        function PageLoadingHandler(sender, args) {
            var dataItems = args.get_dataItems();
            if ($get('Label1') !== null)
                $get('Label1').innerHTML = dataItems['Label1'];
            if ($get('Label2') !== null)
                $get('Label2').innerHTML = dataItems['Label2'];
        }
    </script>
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
       UpdatePanel content.
       <asp:Button ID="Button1" Text="Submit" runat="server" />
    </ContentTemplate>
    </asp:UpdatePanel>
    <hr />
    <asp:Label ID="Label1" runat="server" /> <br />
    <asp:Label ID="Label2" runat="server" />
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        If (ScriptManager1.IsInAsyncPostBack) Then
            Dim json As New System.Web.Script.Serialization.JavaScriptSerializer
            ScriptManager1.RegisterDataItem(Label1, DateTime.Now.ToString())
            ScriptManager1.RegisterDataItem(Label2, json.Serialize("more data"), True)
        End If
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ScriptManager RegisterDataItem Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <script type="text/javascript" language="javascript">
        Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(PageLoadingHandler);
        function PageLoadingHandler(sender, args) {
            var dataItems = args.get_dataItems();
            if ($get('Label1') !== null)
                $get('Label1').innerHTML = dataItems['Label1'];
            if ($get('Label2') !== null)
                $get('Label2').innerHTML = dataItems['Label2'];
        }
    </script>
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
       UpdatePanel content.
       <asp:Button ID="Button1" Text="Submit" runat="server" />
    </ContentTemplate>
    </asp:UpdatePanel>
    <hr />
    <asp:Label ID="Label1" runat="server" /> <br />
    <asp:Label ID="Label2" runat="server" />
    </div>
    </form>
</body>
</html>

Açıklamalar

RegisterDataItem Verileri alan denetimin bir UpdatePanel denetim içinde olup olmadığına bakılmaksızın, zaman uyumsuz geri gönderme işlemleri sırasında sunucudan istemciye veri göndermek için yöntemini kullanın.

RegisterDataItem yöntemi yalnızca zaman uyumsuz bir geri gönderme sırasında çağrılabilir. Geri göndermenin zaman uyumsuz olup olmadığını belirlemek için özelliğini kullanın IsInAsyncPostBack . Bu yöntem, olarak ayarlanmış falseadlı isJsonSerialized bir parametreyi alan aşırı yüklemeyi çağırır. isJsonSerialized parametresi olarak ayarlandığındafalse, dize JavaScript Nesne Gösterimi (JSON) olarak serileştirilmemiştir. JSON biçimi hakkında daha fazla bilgi için bkz. JSON Web sitesine giriş.

yöntemiyle kaydedilen veri öğelerine RegisterDataItem , nesnesinin pageLoading, pageLoadedve endRequest olayları sırasında istemci betiğinde PageRequestManager erişilebilir. Bu olayları işlediğinizde, özel veriler bir olay bağımsız değişkeni nesnesine geçirilir. Örneğin, olay için pageLoading bir işleyici sağlarsanız, özel veriler sınıfına PageLoadingEventArgs geçirilir ve bu da bir dataItems özelliği kullanıma sunar.

Ayrıca bkz.

Şunlara uygulanır

RegisterDataItem(Control, String, Boolean)

Kısmi sayfa işleme sırasında bir denetime özel veri gönderir ve verilerin JavaScript Nesne Gösterimi (JSON) biçiminde olup olmadığını gösterir.

public:
 void RegisterDataItem(System::Web::UI::Control ^ control, System::String ^ dataItem, bool isJsonSerialized);
public void RegisterDataItem (System.Web.UI.Control control, string dataItem, bool isJsonSerialized);
member this.RegisterDataItem : System.Web.UI.Control * string * bool -> unit
Public Sub RegisterDataItem (control As Control, dataItem As String, isJsonSerialized As Boolean)

Parametreler

control
Control

Verileri alan sayfa denetimi.

dataItem
String

Denetime gönderilen veriler.

isJsonSerialized
Boolean

true JSON olarak seri hale getirildiğini dataItem belirtmek için; aksi takdirde , false.

Özel durumlar

control, null değeridir.

yöntemi RegisterDataItem(Control, String, Boolean) bir geri gönderme sırasında çağrılır.

dataItem için controlzaten kayıtlıdır.

Örnekler

Aşağıdaki örnekte, zaman uyumsuz geri gönderme sırasında sayfadaki iki Label denetime veri gönderme işlemi gösterilmektedir. Denetimler Label bir UpdatePanel denetimin içinde değil. Bu örnekte parametresini almayan aşırı yükleme gösterilmektedir isJsonSerialized . Aksi takdirde, nesnenin dataItems PageLoadingEventArgs özelliğini alma yordamı, bu aşırı yüklemeyi kullanmamış olmanızla aynıdır.

Not

Bu örnekte gönderilen veriler yalnızca çizim içindir. Gerçek bir uygulamada, sunucudan RegisterDataItem özel veri göndermek için yöntemini kullanırsınız. Örneğin, bir denetimin içinde UpdatePanel olmayan istemci öğelerinin gizlenmesi veya gösterilmesi hakkında bilgi göndermek için veri öğesini kullanabilirsiniz.

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void Page_Load(object sender, EventArgs e)
    {
        if (ScriptManager1.IsInAsyncPostBack)
        {
            System.Web.Script.Serialization.JavaScriptSerializer json =
                new System.Web.Script.Serialization.JavaScriptSerializer();
            ScriptManager1.RegisterDataItem(Label1, DateTime.Now.ToString());
            ScriptManager1.RegisterDataItem(Label2, json.Serialize("more data"), true);
        }
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ScriptManager RegisterDataItem Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <script type="text/javascript" language="javascript">
        Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(PageLoadingHandler);
        function PageLoadingHandler(sender, args) {
            var dataItems = args.get_dataItems();
            if ($get('Label1') !== null)
                $get('Label1').innerHTML = dataItems['Label1'];
            if ($get('Label2') !== null)
                $get('Label2').innerHTML = dataItems['Label2'];
        }
    </script>
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
       UpdatePanel content.
       <asp:Button ID="Button1" Text="Submit" runat="server" />
    </ContentTemplate>
    </asp:UpdatePanel>
    <hr />
    <asp:Label ID="Label1" runat="server" /> <br />
    <asp:Label ID="Label2" runat="server" />
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        If (ScriptManager1.IsInAsyncPostBack) Then
            Dim json As New System.Web.Script.Serialization.JavaScriptSerializer
            ScriptManager1.RegisterDataItem(Label1, DateTime.Now.ToString())
            ScriptManager1.RegisterDataItem(Label2, json.Serialize("more data"), True)
        End If
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ScriptManager RegisterDataItem Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <script type="text/javascript" language="javascript">
        Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(PageLoadingHandler);
        function PageLoadingHandler(sender, args) {
            var dataItems = args.get_dataItems();
            if ($get('Label1') !== null)
                $get('Label1').innerHTML = dataItems['Label1'];
            if ($get('Label2') !== null)
                $get('Label2').innerHTML = dataItems['Label2'];
        }
    </script>
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
       UpdatePanel content.
       <asp:Button ID="Button1" Text="Submit" runat="server" />
    </ContentTemplate>
    </asp:UpdatePanel>
    <hr />
    <asp:Label ID="Label1" runat="server" /> <br />
    <asp:Label ID="Label2" runat="server" />
    </div>
    </form>
</body>
</html>

Açıklamalar

Verileri alan denetimin bir UpdatePanel denetimin içinde olup olmadığına bakılmaksızın, zaman uyumsuz geri gönderme işlemleri sırasında sunucudan istemciye veri göndermek için yöntemini kullanırsınızRegisterDataItem.

dataItem Kaydolduğunuz control parametre JSON olarak serileştirilmemişse parametresini isJsonSerialized olarak falseayarlayın. Bu, istemciye gönderilen her dize için işlevini kullanma eval gereğini önler. JSON biçimi hakkında daha fazla bilgi için bkz. JSON Web sitesine giriş.

RegisterDataItem yöntemi yalnızca zaman uyumsuz bir geri gönderme sırasında çağrılabilir. Geri göndermenin zaman uyumsuz olup olmadığını belirlemek için özelliğini kullanın IsInAsyncPostBack .

yöntemi kullanılarak kaydedilen veri öğelerine RegisterDataItem , nesnesinin pageLoading, pageLoadedve endRequest olayları sırasında istemci betiğinde PageRequestManager erişilebilir. Bu olayları işlediğinizde, özel veriler bir olay bağımsız değişkeni nesnesine geçirilir. Örneğin, olay için pageLoading bir işleyici sağlarsanız, özel veriler sınıfına PageLoadingEventArgs geçirilir ve bu da bir dataItems özelliği kullanıma sunar.

Ayrıca bkz.

Şunlara uygulanır