DataBoundControlAdapter Sınıf
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.
Belirli tarayıcı istekleri için bağdaştırıcının ilişkilendirildiği bir DataBoundControl nesnenin davranışını özelleştirir.
public ref class DataBoundControlAdapter : System::Web::UI::WebControls::Adapters::WebControlAdapter
public class DataBoundControlAdapter : System.Web.UI.WebControls.Adapters.WebControlAdapter
type DataBoundControlAdapter = class
inherit WebControlAdapter
Public Class DataBoundControlAdapter
Inherits WebControlAdapter
- Devralma
Örnekler
Aşağıdaki kod örnekleri türetilmiş iki denetim oluşturur ve kullanır:
MyDataBound
sınıfından DataBoundControltüretilen sınıfı, basit bir salt okunur kılavuz denetimidir.MyDataBoundAdapter
sınıfından DataBoundControlAdaptertüretilen sınıfı, kılavuz verilerini küçük ekran tarayıcıları için uygun satır ayırıcılarla tek boyutlu bir liste olarak işler.
İlk kod örneği, bir MyDataBound
denetimi ve nesnesi biçiminde veri sağlayan bir örneğini ObjectDataSource bildirmek için bir DataView Web sayfası kullanır.
İkinci kod örneği türetilmiş MyDataBound
ve MyDataBoundAdapter
sınıflarını içerir:
MyDataBound
sınıfıPerformDataBinding, veri kaynağı için bir IEnumerator koleksiyonu kaydetmek için yöntemini geçersiz kılar ve veri kaynağını HTML<table>
olarak işlemek için yöntemini geçersiz kılarRenderContents.sınıfı
MyDataBoundAdapter
, veri kaynağını tek boyutlu ArrayList bir dosyaya kaydetmek ve satır ayırıcıları eklemek için geçersiz kılarPerformDataBinding. Öğesini etiketlerle ArrayList ayrılmış<br />
bir alan listesi olarak işlemek için geçersiz kılarRenderContents.
using System;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Collections;
using System.Security.Permissions;
namespace MyControls
{
// MyDataBound control is a simple read-only grid control.
[AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level = AspNetHostingPermissionLevel.Minimal)]
public class MyDataBound : System.Web.UI.WebControls.DataBoundControl
{
// This is an enumerator for the data source.
IEnumerator dataSourceEnumerator = null;
// Render the data source as a table, without row and column headers.
protected override void RenderContents(
System.Web.UI.HtmlTextWriter writer)
{
// Render the <table> tag.
writer.RenderBeginTag(HtmlTextWriterTag.Table);
// Render the table rows.
while (dataSourceEnumerator.MoveNext())
{
// Get the next data row as an object array.
object[] dataArray =
((DataRowView)dataSourceEnumerator.Current).Row.ItemArray;
// Render the <tr> tag.
writer.RenderBeginTag(HtmlTextWriterTag.Tr);
// Render the fields of the row.
for(int col = 0; col<dataArray.GetLength(0) ; col++)
{
//Render the <td> tag, the field data and the </td> tag.
writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.Write(dataArray[col]);
writer.RenderEndTag();
}
// Render the </tr> tag.
writer.RenderEndTag();
}
// Render the </table> tag.
writer.RenderEndTag();
}
// Data binding consists of saving an enumerator for the data.
protected override void PerformDataBinding(IEnumerable data)
{
dataSourceEnumerator = data.GetEnumerator();
}
}
// MyDataBoundAdapter modifies a MyDataBound control to display a
// grid as a list with row separators.
[AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level = AspNetHostingPermissionLevel.Minimal)]
public class MyDataBoundAdapter :
System.Web.UI.WebControls.Adapters.DataBoundControlAdapter
{
// Returns a strongly-typed reference to the MyDataBound control.
public new MyDataBound Control
{
get
{
return (MyDataBound)base.Control;
}
}
// One-dimensional list for the grid data.
ArrayList dataArray = new ArrayList();
// Copy grid data to one-dimensional list, add row separators.
protected override void PerformDataBinding(IEnumerable data)
{
IEnumerator dataSourceEnumerator = data.GetEnumerator();
// Iterate through the table rows.
while (dataSourceEnumerator.MoveNext())
{
// Add the next data row to the ArrayList.
dataArray.AddRange(
((DataRowView)dataSourceEnumerator.Current).Row.ItemArray);
// Add a separator to the ArrayList.
dataArray.Add("----------");
}
}
// Render the data source as a one-dimensional list.
protected override void RenderContents(
System.Web.UI.HtmlTextWriter writer)
{
// Render the data list.
for( int col=0; col<dataArray.Count;col++)
{
writer.Write(dataArray[col]);
writer.WriteBreak();
}
}
}
}
Imports System.Data
Imports System.Web
Imports System.Web.UI
Imports System.Collections
Imports System.Security
Imports System.Security.Permissions
Namespace MyControls
' MyDataBound control is a simple read-only grid control.
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class MyDataBound
Inherits System.Web.UI.WebControls.DataBoundControl
' This is an enumerator for the data source.
Private dataSourceEnumerator As IEnumerator = Nothing
' Render the data source as a table, without row and column headers.
Protected Overrides Sub RenderContents( _
ByVal writer As System.Web.UI.HtmlTextWriter)
' Render the <table> tag.
writer.RenderBeginTag(HtmlTextWriterTag.Table)
' Render the table rows.
While dataSourceEnumerator.MoveNext()
' Get the next data row as an object array.
Dim dataArray As Object() = CType( _
dataSourceEnumerator.Current, DataRowView).Row.ItemArray
' Render the <tr> tag.
writer.RenderBeginTag(HtmlTextWriterTag.Tr)
' Render the fields of the row.
Dim col As Integer
For col = 0 To (dataArray.GetLength(0)) - 1
'Render the <td> tag, the field data and the </td> tag.
writer.RenderBeginTag(HtmlTextWriterTag.Td)
writer.Write(dataArray(col))
writer.RenderEndTag()
Next col
' Render the </tr> tag.
writer.RenderEndTag()
End While
' Render the </table> tag.
writer.RenderEndTag()
End Sub
' Data binding consists of saving an enumerator for the data.
Protected Overrides Sub PerformDataBinding(ByVal data As IEnumerable)
dataSourceEnumerator = data.GetEnumerator()
End Sub
End Class
' MyDataBoundAdapter modifies a MyDataBound control to display a
' grid as a list with row separators.
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class MyDataBoundAdapter
Inherits System.Web.UI.WebControls.Adapters.DataBoundControlAdapter
' Returns a strongly-typed reference to the MyDataBound control.
Public Shadows ReadOnly Property Control() As MyDataBound
Get
Return CType(MyBase.Control, MyDataBound)
End Get
End Property
' One-dimensional list for the grid data.
Private dataArray As New ArrayList()
' Copy grid data to one-dimensional list, add row separators.
Protected Overrides Sub PerformDataBinding(ByVal data As IEnumerable)
Dim dataSourceEnumerator As IEnumerator = data.GetEnumerator()
' Iterate through the table rows.
While dataSourceEnumerator.MoveNext()
' Add the next data row to the ArrayList.
dataArray.AddRange(CType(dataSourceEnumerator.Current, _
DataRowView).Row.ItemArray)
' Add a separator to the ArrayList.
dataArray.Add("----------")
End While
End Sub
' Render the data source as a one-dimensional list.
Protected Overrides Sub RenderContents( _
ByVal writer As System.Web.UI.HtmlTextWriter)
' Render the data list.
Dim col As Integer
For col = 0 To dataArray.Count - 1
writer.Write(dataArray(col))
writer.WriteBreak()
Next col
End Sub
End Class
End Namespace ' MyControls
Üçüncü kod örneği, Microsoft Internet Explorer tarayıcıları için denetimlerle MyDataBound
hiçbir denetim bağdaştırıcısının kullanılmadığını ve openwave UP tarayıcılarının denetimleriyle MyDataBound
birlikte kullanılacağını belirtmek için bir MyDataBoundAdapter
yapılandırma dosyası kullanır.
Açıklamalar
sınıfından DataBoundControl türetilen bir denetim bir veri kaynağına bağlıdır ve bağlı olduğu veri kaynağındaki öğeleri numaralandırarak kullanıcı arabirimini veya alt denetim hiyerarşisini oluşturur. DataBoundControl ve denetimleri gibi DataGridListBox bir veri kaynağına bağlanabilen tüm denetimlerin ortak özelliklerini tanımlayan soyut bir temel sınıftır. Daha fazla bilgi için bkz. DataBoundControl.
, DataBoundControlAdapter belirli bir tarayıcı veya tarayıcı sınıfı için bir DataBoundControl davranışını değiştirir veya bazı özelliklerde filtre görevi görür. İşleme davranışındaki uyarlanabilirliğin çoğu, sınıfından türetilen HtmlTextWriter özel sınıflarda kapsüllenebilir. Bu nedenle, bir dizi tarayıcı sınıfı davranışı için tek bir bağdaştırıcının kullanılabilmesi veya uyarlanabilirliğin sınıflara HtmlTextWriter eklenmesi, bir denetim bağdaştırıcısının kullanılmasını gereksiz hale getirebilir.
Bu dosyalarda girdiler varsa, her denetimin .browser tanım dosyaları aracılığıyla bağdaştırıcılarla açık eşlemeleri vardır <controlAdapter>
. Bu nedenle, özelliğine AdapterDataBoundControl yönelik tüm erişimler,.browser tanım dosyalarından ayıklanan nesneyi kullanarak HttpBrowserCapabilities , denetlenecek bağdaştırıcının eşlemesi için arama gerçekleştirir.
İşleme sırasında, .NET Framework tarayıcıya özgü olabilecek bir denetimin yöntemlerine çağrıları durdurur. Bir denetim bağdaştırıcısı takılıysa, .NET Framework ilişkili bağdaştırıcı yöntemlerini çağırır. Daha fazla bilgi için bkz. ControlAdapter.
M:System.Web.UI.WebControls.Adapters.DataBoundControlAdapter.PerformDataBinding(System.Collections.IEnumerable) yöntemi, ilişkili DataBoundControlöğesine numaralandırılabilir bir koleksiyon bağlar. özelliği, Control öğesine DataBoundControlkesin olarak belirlenmiş bir başvuru döndürür.
Oluşturucular
DataBoundControlAdapter() |
DataBoundControlAdapter sınıfının yeni bir örneğini başlatır. |
Özellikler
Browser |
Geçerli HTTP isteğini yapan istemcinin tarayıcı özelliklerine bir başvuru alır. (Devralındığı yer: ControlAdapter) |
Control |
Bu denetim bağdaştırıcısıyla ilişkili nesneye DataBoundControl kesin olarak belirlenmiş bir başvuru alır. |
IsEnabled |
Web denetiminin ve tüm üst denetimlerinin etkinleştirilip etkinleştirilmediğini belirten bir değer alır. (Devralındığı yer: WebControlAdapter) |
Page |
Bu bağdaştırıcıyla ilişkili denetimin bulunduğu sayfaya başvuru alır. (Devralındığı yer: ControlAdapter) |
PageAdapter |
İlişkili denetimin bulunduğu sayfanın sayfa bağdaştırıcısına başvuru alır. (Devralındığı yer: ControlAdapter) |
Yöntemler
BeginRender(HtmlTextWriter) |
Denetimin işlenmesinden önce çağrılır. Türetilmiş bir bağdaştırıcı sınıfında, belirli bir hedef için gerekli olan ancak HTML tarayıcıları için gerekli olmayan açma etiketleri oluşturur. (Devralındığı yer: ControlAdapter) |
CreateChildControls() |
Bileşik denetim için hedefe özgü alt denetimleri oluşturur. (Devralındığı yer: ControlAdapter) |
EndRender(HtmlTextWriter) |
Denetimin işlenmesinden sonra çağrılır. Türetilmiş bir bağdaştırıcı sınıfında, belirli bir hedef için gerekli olan ancak HTML tarayıcıları için gerekli olmayan kapanış etiketleri oluşturur. (Devralındığı yer: ControlAdapter) |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
LoadAdapterControlState(Object) |
Bu denetim bağdaştırıcısıyla ilişkilendirilmiş denetimin bulunduğu sayfaya önceki bir istek sırasında tarafından SaveAdapterControlState() kaydedilen bağdaştırıcı denetim durumu bilgilerini yükler. (Devralındığı yer: ControlAdapter) |
LoadAdapterViewState(Object) |
Bu denetim bağdaştırıcısıyla ilişkili denetimin bulunduğu sayfaya önceki bir istek sırasında tarafından SaveAdapterViewState() kaydedilen bağdaştırıcı görünümü durum bilgilerini yükler. (Devralındığı yer: ControlAdapter) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
OnInit(EventArgs) |
OnInit(EventArgs) İlişkili denetim için yöntemini geçersiz kılar. (Devralındığı yer: ControlAdapter) |
OnLoad(EventArgs) |
OnLoad(EventArgs) İlişkili denetim için yöntemini geçersiz kılar. (Devralındığı yer: ControlAdapter) |
OnPreRender(EventArgs) |
OnPreRender(EventArgs) İlişkili denetim için yöntemini geçersiz kılar. (Devralındığı yer: ControlAdapter) |
OnUnload(EventArgs) |
OnUnload(EventArgs) İlişkili denetim için yöntemini geçersiz kılar. (Devralındığı yer: ControlAdapter) |
PerformDataBinding(IEnumerable) |
İlişkili DataBoundControl nesnenin veri kaynağındaki verileri denetim bağdaştırıcısına bağlar. |
Render(HtmlTextWriter) |
Denetim bağdaştırıcısının bağlı olduğu denetim için hedefe özgü işaretlemeyi oluşturur. (Devralındığı yer: WebControlAdapter) |
RenderBeginTag(HtmlTextWriter) |
Hedef tarayıcıya iletilen işaretlemede Web denetimi için başlangıç etiketini oluşturur. (Devralındığı yer: WebControlAdapter) |
RenderChildren(HtmlTextWriter) |
Denetim bağdaştırıcısının bağlı olduğu bileşik denetimde alt denetimler için hedefe özgü işaretlemeyi oluşturur. (Devralındığı yer: ControlAdapter) |
RenderContents(HtmlTextWriter) |
Denetim bağdaştırıcısının bağlı olduğu Web denetimi için hedefe özgü iç işaretlemeyi oluşturur. (Devralındığı yer: WebControlAdapter) |
RenderEndTag(HtmlTextWriter) |
Hedef tarayıcıya iletilen işaretlemede Web denetimi için bitiş etiketini oluşturur. (Devralındığı yer: WebControlAdapter) |
SaveAdapterControlState() |
Denetim bağdaştırıcısı için denetim durumu bilgilerini kaydeder. (Devralındığı yer: ControlAdapter) |
SaveAdapterViewState() |
Denetim bağdaştırıcısının görünüm durumu bilgilerini kaydeder. (Devralındığı yer: ControlAdapter) |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |