Aracılığıyla paylaş


DataControlField Sınıf

Tanım

ve GridViewgibi tablosal veriye bağlı denetimlerdeki bir veri sütununu temsil eden tüm veri denetimi alanı türleri için temel sınıf görevi DetailsView görür.

public ref class DataControlField abstract : System::Web::UI::IDataSourceViewSchemaAccessor, System::Web::UI::IStateManager
[System.ComponentModel.TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))]
public abstract class DataControlField : System.Web.UI.IDataSourceViewSchemaAccessor, System.Web.UI.IStateManager
[<System.ComponentModel.TypeConverter(typeof(System.ComponentModel.ExpandableObjectConverter))>]
type DataControlField = class
    interface IStateManager
    interface IDataSourceViewSchemaAccessor
Public MustInherit Class DataControlField
Implements IDataSourceViewSchemaAccessor, IStateManager
Devralma
DataControlField
Türetilmiş
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki kod örneği, bir DetailsView denetimdeki satırları görüntülemek için 'den DataControlFieldtüretilen ve ButtonField nesnelerinin nasıl kullanılacağını BoundField gösterir. Denetimin DetailsViewAutoGenerateRows özelliği olarak falseayarlanmıştır ve özelliği tarafından döndürülen verilerin bir alt kümesini görüntülemesini SelectCommand sağlar.

<%@ page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
  <form id="form1" runat="server">

    <asp:sqldatasource
      id="SqlDataSource1"
      runat="server"
      connectionstring="<%$ ConnectionStrings:MyNorthwind%>"
      selectcommand="Select * From Employees">
    </asp:sqldatasource>

    <asp:detailsview
      id="DetailsView1"
      runat="server"
      allowpaging="True"
      datasourceid="SqlDataSource1"
      height="208px"
      width="264px"
      autogeneraterows="False">
        <fields>

          <asp:boundfield
            sortexpression="LastName"
            datafield="LastName"
            headertext="LastName">
              <itemstyle backcolor="Yellow">
              </itemstyle>
          </asp:boundfield>

          <asp:boundfield
            sortexpression="FirstName"
            datafield="FirstName"
            headertext="FirstName">
              <itemstyle forecolor="#C00000">
              </itemstyle>
          </asp:boundfield>

          <asp:buttonfield
            text="TestButton"
            buttontype="Button">
          </asp:buttonfield>

        </fields>
    </asp:detailsview>

  </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">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
  <form id="form1" runat="server">

    <asp:sqldatasource
      id="SqlDataSource1"
      runat="server"
      connectionstring="<%$ ConnectionStrings:MyNorthwind%>"
      selectcommand="Select * From Employees">
    </asp:sqldatasource>

    <asp:detailsview
      id="DetailsView1"
      runat="server"
      allowpaging="True"
      datasourceid="SqlDataSource1"
      height="208px"
      width="264px"
      autogeneraterows="False">
        <fields>

          <asp:boundfield
            sortexpression="LastName"
            datafield="LastName"
            headertext="LastName">
              <itemstyle backcolor="Yellow">
              </itemstyle>
          </asp:boundfield>

          <asp:boundfield
            sortexpression="FirstName"
            datafield="FirstName"
            headertext="FirstName">
              <itemstyle forecolor="#C00000">
              </itemstyle>
          </asp:boundfield>

          <asp:buttonfield
            text="TestButton"
            buttontype="Button">
          </asp:buttonfield>

        </fields>
    </asp:detailsview>

  </form>
</body>
</html>

Aşağıdaki kod örneğinde, bir denetimde BoundFieldGridView kullanılabilecek özel bir sınır alanı oluşturmak için sınıfın nasıl genişletileceği gösterilmektedir. sınıfına CheckBoxField benzer şekilde, RadioButtonField sınıfı bir veya false veri sütununu true temsil eder. Ancak, sınıfın CheckBoxField bağlı olduğu veriler herhangi bir veya değer kümesi true olsa da false , sınıfın RadioButtonField bağlı olduğu veri kümesi herhangi bir zamanda yalnızca bir true değere sahip olabilir. Bu örnekte, 'den DataControlFieldtüretilen tüm sınıfların ExtractValuesFromCell iki önemli yöntemi olan ve InitializeCell yöntemlerinin nasıl uygulanacakları gösterilmektedir.

namespace Samples.AspNet.CS {

  using System;
  using System.Collections;
  using System.Collections.Specialized;
  using System.ComponentModel;
  using System.Security.Permissions;
  using System.Web;
  using System.Web.UI;
  using System.Web.UI.WebControls;

  [AspNetHostingPermission(SecurityAction.Demand, 
      Level=AspNetHostingPermissionLevel.Minimal)]
  public sealed class RadioButtonField : CheckBoxField {

    public RadioButtonField() {
    }

    // Gets a default value for a basic design-time experience. 
    // Since it would look odd, even at design time, to have 
    // more than one radio button selected, make sure that none
    // are selected.
    protected override object GetDesignTimeValue() {
        return false;
    }
    // This method is called by the ExtractRowValues methods of 
    // GridView and DetailsView. Retrieve the current value of the 
    // cell from the Checked state of the Radio button.
    public override void ExtractValuesFromCell(IOrderedDictionary dictionary,
                                               DataControlFieldCell cell,
                                               DataControlRowState rowState,
                                               bool includeReadOnly)
    {

      // Determine whether the cell contains a RadioButton 
      // in its Controls collection.
      if (cell.Controls.Count > 0) {
        RadioButton radio = cell.Controls[0] as RadioButton;

        object checkedValue = null;
        if (null == radio) {
          // A RadioButton is expected, but a null is encountered.
          // Add error handling.
          throw new InvalidOperationException
              ("RadioButtonField could not extract control.");
        }
        else {
            checkedValue = radio.Checked;
        }

        // Add the value of the Checked attribute of the
        // RadioButton to the dictionary.
        if (dictionary.Contains(DataField))
          dictionary[DataField] = checkedValue;
        else
          dictionary.Add(DataField, checkedValue);
      }
    }
    // This method adds a RadioButton control and any other 
    // content to the cell's Controls collection.
    protected override void InitializeDataCell
        (DataControlFieldCell cell, DataControlRowState rowState) {

      RadioButton radio = new RadioButton();

      // If the RadioButton is bound to a DataField, add
      // the OnDataBindingField method event handler to the
      // DataBinding event.
      if (DataField.Length != 0) {
        radio.DataBinding += new EventHandler(this.OnDataBindField);
      }

      radio.Text = this.Text;

      // Because the RadioButtonField is a BoundField, it only
      // displays data. Therefore, unless the row is in edit mode,
      // the RadioButton is displayed as disabled.
      radio.Enabled = false;
      // If the row is in edit mode, enable the button.
      if ((rowState & DataControlRowState.Edit) != 0 ||
          (rowState & DataControlRowState.Insert) != 0) {
        radio.Enabled = true;
      }

      cell.Controls.Add(radio);
    }
  }
}
Imports System.Collections.Specialized
Imports System.Collections
Imports System.ComponentModel
Imports System.Security.Permissions
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls

Namespace Samples.AspNet.VB

    <AspNetHostingPermission(SecurityAction.Demand, _
        Level:=AspNetHostingPermissionLevel.Minimal)> _
    Public NotInheritable Class RadioButtonField
        Inherits CheckBoxField

        Public Sub New()
        End Sub

        ' Gets a default value for a basic design-time experience. Since
        ' it would look odd, even at design time, to have more than one
        ' radio button selected, make sure that none are selected.
        Protected Overrides Function GetDesignTimeValue() As Object
            Return False
        End Function

        ' This method is called by the ExtractRowValues methods of
        ' GridView and DetailsView. Retrieve the current value of the 
        ' cell from the Checked state of the Radio button.
        Public Overrides Sub ExtractValuesFromCell( _
            ByVal dictionary As IOrderedDictionary, _
            ByVal cell As DataControlFieldCell, _
            ByVal rowState As DataControlRowState, _
            ByVal includeReadOnly As Boolean)
            ' Determine whether the cell contain a RadioButton 
            ' in its Controls collection.
            If cell.Controls.Count > 0 Then
                Dim radio As RadioButton = CType(cell.Controls(0), RadioButton)

                Dim checkedValue As Object = Nothing
                If radio Is Nothing Then
                    ' A RadioButton is expected, but a null is encountered.
                    ' Add error handling.
                    Throw New InvalidOperationException( _
                        "RadioButtonField could not extract control.")
                Else
                    checkedValue = radio.Checked
                End If


                ' Add the value of the Checked attribute of the
                ' RadioButton to the dictionary.
                If dictionary.Contains(DataField) Then
                    dictionary(DataField) = checkedValue
                Else
                    dictionary.Add(DataField, checkedValue)
                End If
            End If
        End Sub
        ' This method adds a RadioButton control and any other 
        ' content to the cell's Controls collection.
        Protected Overrides Sub InitializeDataCell( _
            ByVal cell As DataControlFieldCell, _
            ByVal rowState As DataControlRowState)

            Dim radio As New RadioButton()

            ' If the RadioButton is bound to a DataField, add
            ' the OnDataBindingField method event handler to the
            ' DataBinding event.
            If DataField.Length <> 0 Then
                AddHandler radio.DataBinding, AddressOf Me.OnDataBindField
            End If

            radio.Text = Me.Text

            ' Because the RadioButtonField is a BoundField, it only 
            ' displays data. Therefore, unless the row is in edit mode, 
            ' the RadioButton is displayed as disabled.
            radio.Enabled = False
            ' If the row is in edit mode, enable the button.
            If (rowState And DataControlRowState.Edit) <> 0 _
                OrElse (rowState And DataControlRowState.Insert) <> 0 Then
                radio.Enabled = True
            End If

            cell.Controls.Add(radio)
        End Sub

    End Class

End Namespace

Aşağıdaki kod örneği, önceki örnekte sağlanan sınıfın RadioButtonField bir GridView denetimde nasıl kullanılacağını gösterir. Bu örnekte, GridView denetim bir spor takımının verilerini görüntüler. Oyuncu verileri, bir kimlik sütunu, oyuncu adları için sütunlar ve takımın kaptanını tanımlayan bir true veya false sütunu içeren bir veri tablosunda tutulur. sınıfı RadioButtonField , hangi ekip üyesinin geçerli takım kaptanı olduğunu görüntülemek için kullanılır. Yeni GridView bir takım kaptanı seçmek veya diğer oyuncu bilgilerini değiştirmek için denetim düzenlenebilir.

<%@ page language="C#" %>
<%@ Register Tagprefix="aspSample"
             Namespace="Samples.AspNet.CS"
             Assembly="Samples.AspNet.CS" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:gridview
          id="GridView1"
          runat="server"
          allowpaging="True"
          datasourceid="SqlDataSource1"
          allowsorting="True"
          autogeneratecolumns="False"
          autogenerateeditbutton="True"
          datakeynames="AnID">
            <columns>

                <aspSample:radiobuttonfield
                  headertext="RadioButtonField"
                  text="TeamLeader"
                  datafield="TrueFalse">
                </aspSample:radiobuttonfield>

                <asp:boundfield
                  insertvisible="False"
                  sortexpression="AnID"
                  datafield="AnID"
                  readonly="True"
                  headertext="AnID">
                </asp:boundfield>

                <asp:boundfield
                  sortexpression="FirstName"
                  datafield="FirstName"
                  headertext="FirstName">
                </asp:boundfield>

                <asp:boundfield
                  sortexpression="LastName"
                  datafield="LastName"
                  headertext="LastName">
                </asp:boundfield>

              </columns>
        </asp:gridview>
        <asp:sqldatasource
          id="SqlDataSource1"
          runat="server"
          connectionstring="<%$ ConnectionStrings:MyNorthwind%>"
          selectcommand="SELECT AnID,FirstName,LastName,TeamLeader FROM Players"
          updatecommand="UPDATE Players SET TrueFalse='false';UPDATE Players SET TrueFalse='true' WHERE AnID=@anID">
        </asp:sqldatasource>

    </form>
</body>
</html>
<%@ page language="VB" %>
<%@ Register Tagprefix="aspSample"
             Namespace="Samples.AspNet.VB"
             Assembly="Samples.AspNet.VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">

        <asp:gridview
          id="GridView1"
          runat="server"
          allowpaging="True"
          datasourceid="SqlDataSource1"
          allowsorting="True"
          autogeneratecolumns="False"
          autogenerateeditbutton="True"
          datakeynames="AnID">
            <columns>
                <aspSample:radiobuttonfield
                  headertext="RadioButtonField"
                  text="TeamLeader"
                  datafield="TrueFalse">
                </aspSample:radiobuttonfield>

                <asp:boundfield
                  insertvisible="False"
                  sortexpression="AnID"
                  datafield="AnID"
                  readonly="True"
                  headertext="AnID">
                </asp:boundfield>

                <asp:boundfield
                  sortexpression="FirstName"
                  datafield="FirstName"
                  headertext="FirstName">
                </asp:boundfield>

                <asp:boundfield
                  sortexpression="LastName"
                  datafield="LastName"
                  headertext="LastName">
                </asp:boundfield>

              </columns>
        </asp:gridview>
        <asp:sqldatasource
          id="SqlDataSource1"
          runat="server"
          connectionstring="<%$ ConnectionStrings:MyNorthwind%>"
          selectcommand="SELECT AnID,FirstName,LastName,TeamLeader FROM Players"
          updatecommand="UPDATE Players SET TrueFalse='false';UPDATE Players SET TrueFalse='true' WHERE AnID=@anID">
        </asp:sqldatasource>

    </form>
</body>
</html>

Açıklamalar

sınıfı, DataControlField tüm veri denetimi alanı türleri için temel sınıf görevi görür. Veri denetimi alanları, bir nesnenin denetimdeki bir sütun DataGrid türünü temsil etme şekline benzer şekilde, veri bağlı denetimler tarafından bir veri alanını temsil etmek için DataGridColumn kullanılır.

veya gibi DetailsViewGridViewveriye bağlı bir denetimde bir veri alanının nasıl görüntüleneceğini denetlemek için' den DataControlField türetilen sınıfları kullanın. Aşağıdaki tabloda, ASP.NET tarafından sağlanan farklı veri denetimi alanı türleri listelenmiştir.

Sütun alanı türü Açıklama
BoundField Veri kaynağındaki bir alanın değerini metin olarak görüntüler.
ButtonField Veriye bağlı denetimde bir komut düğmesi görüntüler. Denetime bağlı olarak, bu, Ekle veya Kaldır düğmesi gibi özel düğme denetimine sahip bir satır veya sütun görüntülemenizi sağlar.
CheckBoxField Veriye bağlı denetimde bir onay kutusu görüntüler. Bu veri denetimi alan türü genellikle Boole değeri olan alanları görüntülemek için kullanılır.
CommandField Veriye bağlı denetimde düzenleme, ekleme veya silme işlemlerini gerçekleştirmek için yerleşik komut düğmelerini görüntüler.
HyperLinkField Veri kaynağındaki bir alanın değerini köprü olarak görüntüler. Bu veri denetimi alanı türü, köprü url'sine ikinci bir alan bağlamanızı sağlar.
ImageField Bir görüntüyü veriye bağlı denetimde görüntüler.
TemplateField Veriye bağlı denetimde kullanıcı tanımlı içeriği belirtilen şablona göre görüntüler.

Kendi veri denetimi alan türlerinizi oluşturmak için ve BoundField sınıflarını da genişletebilirsinizDataControlField.

sınıfı, DataControlField kullanıcı arabirimi (UI) öğelerinin veri bağlama denetiminde nasıl sunulduğunu belirleyen birçok özellik sağlar. Bir kullanıcı arabirimi işlenirken her denetim kullanılabilir her veri denetimi alanı özelliğini kullanmaz. Örneğin, DetailsView veri denetimi alanlarını satır olarak görüntüleyen denetim, her veri denetimi alanı için bir üst bilgi öğesi içerir, ancak alt bilgi öğesi yoktur. Bu nedenle ve FooterTextFooterStyle özellikleri denetim tarafından yoksayılır DetailsView . GridView Ancak denetimi, özelliği olarak ayarlanırsa ShowFootertrueve FooterStyle özelliklerini kullanırFooterText. Benzer şekilde, veri denetimi alanı özellikleri, öğenin ne olduğuna bağlı olarak kullanıcı arabirimi öğelerinin sunumunu etkiler. ItemStyle özelliği her zaman alana uygulanır. veya sınıflarında CheckBoxFieldButtonField olduğu gibi türetilen DataControlField tür bir denetim içeriyorsa, ControlStyle özelliği alana uygulanır.

Oluşturucular

Name Description
DataControlField()

DataControlField sınıfının yeni bir örneğini başlatır.

Özellikler

Name Description
AccessibleHeaderText

Bazı denetimlerde özellik değeri olarak AbbreviatedText işlenen metni alır veya ayarlar.

Control

Nesnenin ilişkili olduğu veri denetimine DataControlField başvuru alır.

ControlStyle

Nesnenin DataControlField içerdiği tüm Web sunucusu denetimlerinin stilini alır.

DesignMode

Bir veri denetimi alanının şu anda tasarım zamanı ortamında görüntülenip görüntülenmediğini belirten bir değer alır.

FooterStyle

Veri denetimi alanının alt bilgisinin stilini alır veya ayarlar.

FooterText

Veri denetimi alanının alt bilgi öğesinde görüntülenen metni alır veya ayarlar.

HeaderImageUrl

Veri denetimi alanının üst bilgi öğesinde görüntülenen görüntünün URL'sini alır veya ayarlar.

HeaderStyle

Veri denetimi alanının üst bilgisinin stilini alır veya ayarlar.

HeaderText

Veri denetimi alanının üst bilgi öğesinde görüntülenen metni alır veya ayarlar.

InsertVisible

Üst veri bağlı denetimi ekleme modundayken nesnenin DataControlField görünür olup olmadığını gösteren bir değer alır.

IsTrackingViewState

Nesnenin DataControlField değişiklikleri görünüm durumuna kaydedip kaydetmediğini belirten bir değer alır.

ItemStyle

Veri denetimi alanı tarafından görüntülenen metin tabanlı içeriğin stilini alır.

ShowHeader

Veri denetim alanının üst bilgi öğesinin işlenip işlenmediğini belirten bir değer alır veya ayarlar.

SortExpression

Verileri sıralamak için bir veri kaynağı denetimi tarafından kullanılan bir sıralama ifadesi alır veya ayarlar.

ValidateRequestMode

Denetimin istemci girişini doğrulayıp doğrulamadığını belirten bir değer alır veya ayarlar.

ViewState

Aynı sayfa için birden çok istekte bir nesnenin görünüm durumunu kaydetmenize ve geri yüklemenize olanak tanıyan durum DataControlField bilgileri sözlüğü alır.

Visible

Veri denetimi alanının işlenip işlenmediğini belirten bir değer alır veya ayarlar.

Yöntemler

Name Description
CloneField()

Geçerli DataControlFieldtüretilmiş nesnenin yinelenen bir kopyasını oluşturur.

CopyProperties(DataControlField)

Geçerli DataControlFieldtüretilmiş nesnenin özelliklerini belirtilen DataControlField nesneye kopyalar.

CreateField()

Türetilmiş bir sınıfta geçersiz kılındığında, boş DataControlFieldtüretilmiş bir nesne oluşturur.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
ExtractValuesFromCell(IOrderedDictionary, DataControlFieldCell, DataControlRowState, Boolean)

Geçerli tablo hücresinden veri denetimi alanının değerini ayıklar ve değeri belirtilen IDictionary koleksiyona ekler.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
Initialize(Boolean, Control)

Veri denetimi alanı için temel örnek başlatma gerçekleştirir.

InitializeCell(DataControlFieldCell, DataControlCellType, DataControlRowState, Int32)

Hücrenin denetim koleksiyonuna metin veya denetim ekler.

LoadViewState(Object)

Veri kaynağı görünümünün daha önce kaydedilmiş görünüm durumunu geri yükler.

MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
OnFieldChanged()

FieldChanged olayını başlatır.

SaveViewState()

Sayfanın sunucuya DataControlField geri gönderildiği zamandan bu yana görünüm durumunda yapılan değişiklikleri kaydeder.

ToString()

Bu DataControlField nesneyi temsil eden bir dize döndürür.

TrackViewState()

Nesnenin görünüm durumundaki DataControlField değişiklikleri izlemesine neden olur, böylece bunlar denetimin ViewState özelliğinde depolanabilir ve aynı sayfaya yönelik istekler arasında kalıcı hale gelebilir.

ValidateSupportsCallback()

Türetilmiş bir sınıfta geçersiz kılındığında, bir alanın içerdiği denetimlerin geri çağırmaları desteklediğini bildirir.

Belirtik Arabirim Kullanımları

Name Description
IDataSourceViewSchemaAccessor.DataSourceViewSchema

Bu DataControlField nesneyle ilişkili şemayı alır veya ayarlar.

IStateManager.IsTrackingViewState

Nesnenin DataControlField değişiklikleri görünüm durumuna kaydedip kaydetmediğini belirten bir değer alır.

IStateManager.LoadViewState(Object)

Veri denetimi alanının daha önce kaydedilmiş görünüm durumunu geri yükler.

IStateManager.SaveViewState()

Sayfanın sunucuya DataControlField geri gönderildiği zamandan bu yana görünüm durumunda yapılan değişiklikleri kaydeder.

IStateManager.TrackViewState()

Nesnenin görünüm durumundaki DataControlField değişiklikleri izlemesine neden olur, böylece bunlar denetimin ViewState özelliğinde depolanabilir ve aynı sayfaya yönelik istekler arasında kalıcı hale gelebilir.

Şunlara uygulanır

Ayrıca bkz.