Bagikan melalui


DataBoundControl.PerformDataBinding(IEnumerable) Metode

Definisi

Saat ditimpa di kelas turunan, mengikat data dari sumber data ke kontrol.

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)

Parameter

data
IEnumerable

Daftar IEnumerable data yang dikembalikan dari PerformSelect() panggilan metode.

Contoh

Contoh kode berikut menunjukkan cara mengimplementasikan PerformDataBinding metode di kelas yang berasal dari DataBoundControl. Kontrol TextBoxSet membuat TextBox kontrol untuk setiap item data yang terikat. Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk DataBoundControl kelas .

protected override void PerformDataBinding(IEnumerable retrievedData) {
    base.PerformDataBinding(retrievedData);

    // If the data is retrieved from an IDataSource as an 
    // IEnumerable collection, attempt to bind its values to a 
    // set of TextBox controls.
    if (retrievedData != null) {

        foreach (object dataItem in retrievedData) {
            
            TextBox box = new TextBox();
            
            // The dataItem is not just a string, but potentially
            // a System.Data.DataRowView or some other container. 
            // If DataTextField is set, use it to determine which 
            // field to render. Otherwise, use the first field.                    
            if (DataTextField.Length > 0) {
                box.Text = DataBinder.GetPropertyValue(dataItem, 
                    DataTextField, null);
            }
            else {
                PropertyDescriptorCollection props = 
                    TypeDescriptor.GetProperties(dataItem);

                // Set the "default" value of the TextBox.
                box.Text = String.Empty;
                
                // Set the true data-bound value of the TextBox,
                // if possible.
                if (props.Count >= 1) {                        
                    if (null != props[0].GetValue(dataItem)) {
                        box.Text = props[0].GetValue(dataItem).ToString();
                    }
                }
            }                                        
            
            BoxSet.Add(box);
        }
    }
}
Protected Overrides Sub PerformDataBinding(ByVal retrievedData As IEnumerable)
    MyBase.PerformDataBinding(retrievedData)

    ' If the data is retrieved from an IDataSource as an IEnumerable 
    ' collection, attempt to bind its values to a set of TextBox controls.
    If Not (retrievedData Is Nothing) Then

        Dim dataItem As Object
        For Each dataItem In retrievedData

            Dim box As New TextBox()

            ' The dataItem is not just a string, but potentially
            ' a System.Data.DataRowView or some other container. 
            ' If DataTextField is set, use it to determine which 
            ' field to render. Otherwise, use the first field.                    
            If DataTextField.Length > 0 Then
                box.Text = DataBinder.GetPropertyValue( _
                dataItem, DataTextField, Nothing)
            Else
                Dim props As PropertyDescriptorCollection = _
                    TypeDescriptor.GetProperties(dataItem)

                ' Set the "default" value of the TextBox.
                box.Text = String.Empty

                ' Set the true data-bound value of the TextBox,
                ' if possible.
                If props.Count >= 1 Then
                    If props(0).GetValue(dataItem) IsNot Nothing Then
                        box.Text = props(0).GetValue(dataItem).ToString()
                    End If
                End If
            End If

            BoxSet.Add(box)
        Next dataItem
    End If

End Sub

Keterangan

Terapkan metode ini alih-alih DataBind metode saat Anda mendapatkan kontrol terikat data dari DataBoundControl kelas . Menempatkan logika PerformDataBinding pengikatan data kontrol memungkinkan Anda menghindari DataBinding peristiwa dan DataBound dinaikkan dalam urutan yang salah.

Meskipun kelas dasar DataBoundControl tidak menyediakan implementasi khusus untuk metode ini, PerformDataBinding metode ini dipanggil oleh PerformSelect metode untuk mengikat nilai kontrol antarmuka pengguna (UI) apa pun ke data yang diambil oleh PerformSelect metode .

Berlaku untuk