ScriptManager.RegisterDataItem Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 control
zaten 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ış false
adlı 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
, pageLoaded
ve 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 control
zaten 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 false
ayarlayı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
, pageLoaded
ve 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.