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 denetim 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 DetailsView AutoGenerateRows özelliği olarak falseayarlanmıştır ve bu da ö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 BoundField GridView 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ı da bir veya false veri sütununu true temsil eder. Ancak, sınıfın CheckBoxField bağlı olduğu veriler herhangi bir veya false değerleri kümesi true olabilir, ancak 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 uygulandığı 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ın bir GridView denetimde nasıl kullanılacağını RadioButtonField gösterir. Bu örnekte denetim, GridView 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 doğru veya yanlış sütun 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. Denetim GridView , yeni bir takım kaptanı seçmek veya diğer oyuncu bilgilerini değiştirmek için 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ı, veriye bağlı denetimler tarafından, bir nesnenin denetimdeki DataGrid bir sütun türünü temsil etme şekline benzer şekilde bir veri alanını temsil etmek için DataGridColumn kullanılır.

bir veri alanının veya GridViewgibi DetailsView bir veriye bağlı denetimde nasıl görüntüleneceğini denetlemek için türetilen DataControlField 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ü Description
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 Veriye bağlı denetimde bir görüntü görüntüler.
TemplateField Belirtilen şablona göre veriye bağlı denetimde kullanıcı tanımlı içeriği 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 veriye bağlı denetimde 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, FooterText ve FooterStyle özellikleri denetim tarafından DetailsView yoksayılır. GridView Ancak denetimi, özelliği olarak ayarlanırsa ShowFooter trueve 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. 'den DataControlField türetilen tür, veya CheckBoxField sınıflarında ButtonField olduğu gibi bir denetim içeriyorsa, ControlStyle özelliği alana uygulanır.

Oluşturucular

DataControlField()

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

Özellikler

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 içerdiği DataControlField web sunucusu denetimlerinin stilini alır.

DesignMode

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

FooterStyle

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

FooterText

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

HeaderImageUrl

Bir 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 denetim alanının üst bilgisinin stilini alır veya ayarlar.

HeaderText

Veri denetim 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ı belirten bir değer alır.

IsTrackingViewState

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

ItemStyle

Veri denetim 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 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 kaydetmenizi ve geri yüklemenizi sağlayan durum DataControlField bilgileri sözlüğü alır.

Visible

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

Yöntemler

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()

Type Geçerli örneğini 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 denetimler 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 Objectöğesinin sığ bir kopyasını oluşturur.

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

Olayı tetikler FieldChanged .

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ı

IDataSourceViewSchemaAccessor.DataSourceViewSchema

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

IStateManager.IsTrackingViewState

Nesnenin DataControlField görünüm durumundaki değişiklikleri 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.