DataBoundControlAdapter.PerformDataBinding(IEnumerable) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將關聯 DataBoundControl 物件資料來源中的資料繫結至控制項配置器。
protected public:
virtual void PerformDataBinding(System::Collections::IEnumerable ^ data);
protected internal virtual void PerformDataBinding (System.Collections.IEnumerable data);
abstract member PerformDataBinding : System.Collections.IEnumerable -> unit
override this.PerformDataBinding : System.Collections.IEnumerable -> unit
Protected Friend Overridable Sub PerformDataBinding (data As IEnumerable)
參數
- data
- IEnumerable
將繫結至衍生 IEnumerable 的 Object 之 DataBoundControl。
範例
下列程式碼範例示範如何覆寫集合, PerformDataBinding 以將資料來源儲存至一維 ArrayList 物件,並新增資料列分隔符號。 它也會示範如何覆寫 RenderContents 方法,以轉譯 ArrayList 為以 <br />
標記分隔的欄位清單。
// 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();
}
}
' 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
備註
當控制項配接器附加至衍生自 DataBoundControl 類別的 DataBoundControl.PerformDataBinding 控制項時 DataBoundControlAdapter ,會 PerformDataBinding 呼叫 方法來取代 方法。
一般而言,覆寫 DataBoundControl.PerformDataBinding 會逐一查看資料、在必要時建立不同的名稱和值,並將它儲存至內部集合。 通常, RenderContents 或類似的 方法 DataBoundControl 會從該內部集合填入使用者介面或子控制項。
給繼承者的注意事項
PerformDataBinding(IEnumerable)當目標瀏覽器需要特製化系結邏輯時覆寫 方法,例如,專案名稱的建構方式必須與控制項的一般用法不同。
基 PerformDataBinding(IEnumerable) 底方法會呼叫 PerformDataBinding(IEnumerable) 。 只有在需要 的資料系結功能 DataBoundControl 時,才應該呼叫 PerformDataBinding(IEnumerable) 基底方法。