DataControlField Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 false
ayarlanmış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 true
ve 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 |
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 |
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. |