ScriptManager.RegisterDataItem Metódus

Definíció

Egyéni adatokat küld a vezérlőknek a részleges oldalmegjelenítés során.

Túlterhelések

Name Description
RegisterDataItem(Control, String)

Egyéni adatokat küld egy vezérlőnek a részleges oldalmegjelenítés során.

RegisterDataItem(Control, String, Boolean)

Egyéni adatokat küld egy vezérlőnek a részleges oldalmegjelenítés során, és jelzi, hogy az adatok JavaScript Object Notation (JSON) formátumban vannak-e.

RegisterDataItem(Control, String)

Egyéni adatokat küld egy vezérlőnek a részleges oldalmegjelenítés során.

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)

Paraméterek

control
Control

Az adatokat fogadó vezérlő.

dataItem
String

A vezérlőnek küldött adatok.

Kivételek

control az null.

A RegisterDataItem(Control, String, Boolean) metódus meghívása utólagos visszavételkor történik.

dataItem már regisztrálva van a következőre control: .

Példák

Az alábbi példa bemutatja, hogyan küldhet adatokat egy lap két Label vezérlőjének az aszinkron visszavétel során. A Label vezérlők nincsenek vezérlőkben UpdatePanel .

Note

Az ebben a példában elküldött adatok csak illusztrációk. Egy valós alkalmazásban a RegisterDataItem metódussal egyéni adatokat küldhet a kiszolgálóról.

<%@ 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>

Megjegyzések

Ezzel a RegisterDataItem módszerrel adatokat küldhet a kiszolgálóról az ügyfélnek az aszinkron visszavételek során, függetlenül attól, hogy az adatokat fogadó vezérlő egy UpdatePanel vezérlőn belül van-e.

A RegisterDataItem metódus csak aszinkron visszavételkor hívható meg. Annak megállapításához, hogy a visszavétel aszinkron-e, használja a tulajdonságot IsInAsyncPostBack . Ez a metódus meghívja a túlterhelést, amely egy, a következőre beállított paramétert isJsonSerializedfalseveszi fel. A paraméter beállításakor isJsonSerializeda false sztring nem JavaScript Object Notation (JSON) néven szerializálva van. A JSON formátummal kapcsolatos további információkért tekintse meg a JSON bemutatása webhelyet.

A metódusban RegisterDataItem regisztrált adatelemek az objektum , pageLoadingés pageLoaded az események endRequest során PageRequestManagerügyfélszkriptben érhetők el. Az események kezelésekor az egyéni adatok egy eseményargumentum-objektumban lesznek átadva. Ha például egy kezelőt ad meg az pageLoading eseményhez, az egyéni adatok az osztályban PageLoadingEventArgs lesznek átadva, amely egy tulajdonságot dataItems tesz elérhetővé.

Lásd még

A következőre érvényes:

RegisterDataItem(Control, String, Boolean)

Egyéni adatokat küld egy vezérlőnek a részleges oldalmegjelenítés során, és jelzi, hogy az adatok JavaScript Object Notation (JSON) formátumban vannak-e.

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)

Paraméterek

control
Control

Az adatokat fogadó oldalvezérlő.

dataItem
String

A vezérlőnek küldött adatok.

isJsonSerialized
Boolean

trueazt jelzi, hogy dataItem a szerializált JSON; ellenkező esetben. false

Kivételek

control az null.

A RegisterDataItem(Control, String, Boolean) metódus meghívása utólagos visszavételkor történik.

dataItem már regisztrálva van a következőre control: .

Példák

Az alábbi példa bemutatja, hogyan küldhet adatokat egy lap két Label vezérlőjének az aszinkron visszavétel során. A Label vezérlők nincsenek vezérlőkben UpdatePanel . Ez a példa azt a túlterhelést mutatja be, amely nem veszi át a paramétert isJsonSerialized . Ellenkező esetben az objektum tulajdonságának beolvasása dataItemsPageLoadingEventArgs ugyanaz, mintha nem használta volna ezt a túlterhelést.

Note

Az ebben a példában elküldött adatok csak illusztrációk. Egy valós alkalmazásban a RegisterDataItem metódussal egyéni adatokat küldhet a kiszolgálóról. Az adatelem használatával például információkat küldhet arról, hogy elrejtse vagy megjelenítse-e azokat az ügyfélelemeket, amelyek nem egy UpdatePanel vezérlőn belül találhatók.

<%@ 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>

Megjegyzések

Ezzel a RegisterDataItem módszerrel adatokat küldhet a kiszolgálóról az ügyfélnek az aszinkron visszavételek során, függetlenül attól, hogy az adatokat fogadó vezérlő egy UpdatePanel vezérlőn belül van-e.

Ha a dataItem regisztrálandó control paraméter nem JSON-ként van szerializálva, állítsa a paramétert a isJsonSerialized következőre false: . Így nem szükséges a függvényt használni az eval ügyfélnek küldött összes sztringhez. A JSON formátummal kapcsolatos további információkért tekintse meg a JSON bemutatása webhelyet.

A RegisterDataItem metódus csak aszinkron visszavételkor hívható meg. Annak megállapításához, hogy a visszavétel aszinkron-e, használja a tulajdonságot IsInAsyncPostBack .

A metódussal regisztrált adatelemek az RegisterDataItem objektum során pageLoadingpageLoadedendRequest az ügyfélszkriptben PageRequestManagerérhetők el. Az események kezelésekor az egyéni adatok egy eseményargumentum-objektumban lesznek átadva. Ha például egy kezelőt ad meg az pageLoading eseményhez, az egyéni adatok az osztályban PageLoadingEventArgs lesznek átadva, amely egy tulajdonságot dataItems tesz elérhetővé.

Lásd még

A következőre érvényes: