DataBoundControlAdapter 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
특정 브라우저 요청에 대해 어댑터가 연결된 DataBoundControl 개체의 동작을 사용자 지정합니다.
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
- 상속
예제
다음 코드 예제를 만들고 두 파생된 컨트롤을 사용 합니다.
합니다
MyDataBound
에서 파생 된 클래스 DataBoundControl, 간단한 읽기 전용으로 그리드 컨트롤입니다.합니다
MyDataBoundAdapter
에서 파생 된 클래스 DataBoundControlAdapter, 작은 화면 브라우저에 적합 한 행 구분선이 있는 1 차원 목록으로 표 형태 데이터를 렌더링 합니다.
첫 번째 코드 예제에서는 웹 페이지를 사용 하 여 선언 하는 MyDataBound
컨트롤과 인스턴스의 ObjectDataSource 의 형태로 데이터를 제공 하는 DataView 개체.
두 번째 코드 예제에서는 포함 된 파생 MyDataBound
고 MyDataBoundAdapter
클래스:
MyDataBound
재정의 클래스를 PerformDataBinding 저장 하는 방법은 IEnumerator 데이터 원본 및 재정의 대 한 컬렉션을 RenderContents HTML 데이터 소스를 렌더링 하는 방법<table>
.MyDataBoundAdapter
재정의 클래스 PerformDataBinding 를 1 차원 데이터 소스를 저장 하려면 ArrayList 행 구분 기호를 추가 합니다. 재정의 RenderContents 렌더링 하는 ArrayList 구분 하 여 필드의 목록으로<br />
태그입니다.
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
없는 컨트롤 어댑터와 함께 사용 될 임을 지정 하려면 구성 파일을 사용 하는 세 번째 코드 예제에서는 MyDataBound
하 고 Microsoft Internet Explorer 브라우저 컨트롤을 MyDataBoundAdapter
와 함께 사용 됩니다 MyDataBound
Openwave를 브라우저에 대 한 제어 합니다.
설명
파생 되는 컨트롤을 DataBoundControl 클래스는 데이터 원본에 바인딩되고가 바인딩되는 데이터 소스의 항목을 열거 하 여 해당 사용자 인터페이스 또는 자식 컨트롤 계층 구조를 생성 합니다. DataBoundControl 같은 데이터 원본에 바인딩될 수 있는 모든 컨트롤의 일반적인 특성을 정의 하는 추상 기본 클래스를 DataGrid 고 ListBox 컨트롤입니다. 자세한 내용은 DataBoundControl를 참조하세요.
A DataBoundControlAdapter 의 동작을 수정 하는 DataBoundControl 특정 브라우저 또는 브라우저 또는 역할의 일부 기능에 대 한 필터 클래스에 대 한 합니다. 파생 되는 특수 클래스에 캡슐화 할 수 있습니다의 렌더링 동작에서을 HtmlTextWriter 클래스입니다. 따라서 것 브라우저 클래스 동작 또는에 어댑터 기능이 포함 되는 수에 대 한 단일 어댑터를 사용할 수 있도록 합니다 HtmlTextWriter 클래스 불필요 한 컨트롤 어댑터를 사용을 만들 수 있습니다.
각 컨트롤.browser 정의 파일을 통해 어댑터에 대 한 명시적인 매핑이 있는 경우에 <controlAdapter>
이러한 파일의 항목입니다. 따라서 액세스 하는 모든는 Adapter 의 속성을 DataBoundControl 사용 하 여는 HttpBrowserCapabilities 컨트롤 어댑터의 매핑에 대 한 조회를 수행 하는.browser 정의 파일에서 추출 된 개체.
처리 하는 동안.NET Framework 브라우저별 수 있는 컨트롤의 메서드 호출을 차단 합니다. 컨트롤 어댑터가 연결 되 면.NET Framework는 연결 된 어댑터 메서드를 호출 합니다. 자세한 내용은 ControlAdapter를 참조하세요.
M:System.Web.UI.WebControls.Adapters.DataBoundControlAdapter.PerformDataBinding(System.Collections.IEnumerable) 메서드 열거 가능한 컬렉션을 연결 된 바인딩합니다 DataBoundControl합니다. 합니다 Control 속성에 대 한 강력한 형식의 참조를 반환 합니다 DataBoundControl합니다.
생성자
DataBoundControlAdapter() |
DataBoundControlAdapter 클래스의 새 인스턴스를 초기화합니다. |
속성
Browser |
현재 HTTP 요청을 하는 클라이언트의 브라우저 기능에 대한 참조를 가져옵니다. (다음에서 상속됨 ControlAdapter) |
Control |
이 컨트롤 어댑터와 연결된 DataBoundControl 개체에 대한 강력한 형식의 참조를 검색합니다. |
IsEnabled |
웹 컨트롤 및 모든 부모 컨트롤을 사용할 수 있는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 WebControlAdapter) |
Page |
이 어댑터와 연결된 컨트롤이 있는 페이지에 대한 참조를 가져옵니다. (다음에서 상속됨 ControlAdapter) |
PageAdapter |
연결된 컨트롤이 있는 페이지의 페이지 어댑터에 대한 참조를 가져옵니다. (다음에서 상속됨 ControlAdapter) |
메서드
BeginRender(HtmlTextWriter) |
컨트롤의 렌더링 전에 호출됩니다. 파생 어댑터 클래스에서 특정 대상에는 필요하지만 HTML 브라우저에는 필요하지 않은 여는 태그를 생성합니다. (다음에서 상속됨 ControlAdapter) |
CreateChildControls() |
합성 컨트롤의 대상별 자식 컨트롤을 만듭니다. (다음에서 상속됨 ControlAdapter) |
EndRender(HtmlTextWriter) |
컨트롤의 렌더링 후에 호출됩니다. 파생 어댑터 클래스에서 특정 대상에는 필요하지만 HTML 브라우저에는 필요하지 않은 닫는 태그를 생성합니다. (다음에서 상속됨 ControlAdapter) |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
LoadAdapterControlState(Object) |
이 컨트롤 어댑터와 연결된 컨트롤이 있는 페이지에 대한 이전의 요청 중 SaveAdapterControlState()에서 저장한 어댑터 컨트롤 상태 정보를 로드합니다. (다음에서 상속됨 ControlAdapter) |
LoadAdapterViewState(Object) |
이 컨트롤 어댑터와 연결된 컨트롤이 있는 페이지에 대한 이전 요청 중 SaveAdapterViewState()에서 저장한 어댑터 뷰 상태 정보를 로드합니다. (다음에서 상속됨 ControlAdapter) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
OnInit(EventArgs) |
연결된 컨트롤의 OnInit(EventArgs) 메서드를 재정의합니다. (다음에서 상속됨 ControlAdapter) |
OnLoad(EventArgs) |
연결된 컨트롤의 OnLoad(EventArgs) 메서드를 재정의합니다. (다음에서 상속됨 ControlAdapter) |
OnPreRender(EventArgs) |
연결된 컨트롤의 OnPreRender(EventArgs) 메서드를 재정의합니다. (다음에서 상속됨 ControlAdapter) |
OnUnload(EventArgs) |
연결된 컨트롤의 OnUnload(EventArgs) 메서드를 재정의합니다. (다음에서 상속됨 ControlAdapter) |
PerformDataBinding(IEnumerable) |
연결된 DataBoundControl 개체의 데이터 소스에 있는 데이터를 컨트롤 어댑터에 바인딩합니다. |
Render(HtmlTextWriter) |
컨트롤 어댑터가 연결된 컨트롤에 대한 대상별 태그를 생성합니다. (다음에서 상속됨 WebControlAdapter) |
RenderBeginTag(HtmlTextWriter) |
대상 브라우저로 전송되는 태그 안에 웹 컨트롤의 시작 태그를 만듭니다. (다음에서 상속됨 WebControlAdapter) |
RenderChildren(HtmlTextWriter) |
컨트롤 어댑터가 결합되는 합성 컨트롤의 자식 컨트롤에 대한 대상별 태그를 생성합니다. (다음에서 상속됨 ControlAdapter) |
RenderContents(HtmlTextWriter) |
컨트롤 어댑터가 연결된 웹 컨트롤에 대한 대상별 내부 태그를 생성합니다. (다음에서 상속됨 WebControlAdapter) |
RenderEndTag(HtmlTextWriter) |
대상 브라우저로 전송되는 태그 안에 웹 컨트롤의 끝 태그를 만듭니다. (다음에서 상속됨 WebControlAdapter) |
SaveAdapterControlState() |
컨트롤 어댑터의 컨트롤 상태 정보를 저장합니다. (다음에서 상속됨 ControlAdapter) |
SaveAdapterViewState() |
컨트롤 어댑터의 뷰 상태 정보를 저장합니다. (다음에서 상속됨 ControlAdapter) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |