DataControlField Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Sert de classe de base pour tous les types de champs de contrôle de données, qui représentent une colonne de données dans des contrôles liés aux données tabulaires tels que DetailsView et GridView.
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
- Héritage
-
DataControlField
- Dérivé
- Attributs
- Implémente
Exemples
L’exemple de code suivant montre comment utiliser et ButtonField objetsBoundField, qui sont dérivés de DataControlField, pour afficher des lignes dans un DetailsView contrôle. Le DetailsView contrôle a la AutoGenerateRows propriété définie falsesur , ce qui lui permet d’afficher un sous-ensemble des données retournées par la SelectCommand propriété.
<%@ 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>
L’exemple de code suivant montre comment étendre la BoundField classe pour créer un champ lié personnalisé qui peut être utilisé dans un GridView contrôle. Comme pour la CheckBoxField classe, la RadioButtonField classe représente une colonne de données ou false une true colonne. Toutefois, même si les données auxquelles la CheckBoxField classe est liée peuvent être n’importe quel ensemble true ou false valeur, le jeu de données auquel la RadioButtonField classe est liée ne peut avoir qu’une true seule valeur à tout moment. Cet exemple montre comment implémenter les méthodes et InitializeCell les ExtractValuesFromCell méthodes, deux méthodes importantes de toutes les classes dérivées de DataControlField.
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
L’exemple de code suivant montre comment utiliser la RadioButtonField classe, fournie dans l’exemple précédent, dans un GridView contrôle. Dans cet exemple, le GridView contrôle affiche les données d’une équipe sportive. Les données du joueur sont conservées dans une table de données qui inclut une colonne d’ID, des colonnes pour les noms des joueurs et une colonne true ou false qui identifie le capitaine de l’équipe. La RadioButtonField classe est utilisée pour afficher quel membre de l’équipe est le capitaine d’équipe actuel. Le GridView contrôle peut être modifié pour choisir un nouveau capitaine d’équipe ou pour modifier d’autres informations sur les joueurs.
<%@ 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>
Remarques
La DataControlField classe sert de classe de base pour tous les types de champs de contrôle de données. Les champs de contrôle de données sont utilisés par les contrôles liés aux données pour représenter un champ de données, similaire à la façon dont un DataGridColumn objet représente un type de colonne dans le DataGrid contrôle.
Utilisez les classes dérivées pour DataControlField contrôler la façon dont un champ de données est affiché dans un contrôle lié aux données, tel que DetailsView ou GridView. Le tableau suivant répertorie les différents types de champs de contrôle de données fournis par ASP.NET.
| Type de champ de colonne | Description |
|---|---|
| BoundField | Affiche la valeur d’un champ dans une source de données sous forme de texte. |
| ButtonField | Affiche un bouton de commande dans un contrôle lié aux données. Selon le contrôle, cela vous permet d’afficher une ligne ou une colonne avec un contrôle bouton personnalisé, tel qu’un bouton Ajouter ou Supprimer. |
| CheckBoxField | Affiche une case à cocher dans un contrôle lié aux données. Ce type de champ de contrôle de données est couramment utilisé pour afficher les champs avec une valeur booléenne. |
| CommandField | Affiche les boutons de commande intégrés pour effectuer des opérations de modification, d’insertion ou de suppression dans un contrôle lié aux données. |
| HyperLinkField | Affiche la valeur d’un champ dans une source de données en tant que lien hypertexte. Ce type de champ de contrôle de données vous permet de lier un deuxième champ à l’URL du lien hypertexte. |
| ImageField | Affiche une image dans un contrôle lié aux données. |
| TemplateField | Affiche le contenu défini par l’utilisateur dans un contrôle lié aux données en fonction d’un modèle spécifié. |
Vous pouvez également étendre les DataControlField classes et BoundField les étendre pour créer vos propres types de champs de contrôle de données.
La DataControlField classe fournit de nombreuses propriétés qui déterminent la façon dont les éléments d’interface utilisateur sont présentés dans le contrôle lié aux données. Tous les contrôles n’utilisent pas toutes les propriétés de champ de contrôle de données disponibles lors du rendu d’une interface utilisateur. Par exemple, le DetailsView contrôle, qui affiche les champs de contrôle de données sous forme de lignes, inclut un élément d’en-tête pour chaque champ de contrôle de données, mais aucun élément de pied de page. Par conséquent, les propriétés et FooterStyle les FooterText propriétés sont ignorées par le DetailsView contrôle. Toutefois, le GridView contrôle utilise les propriétés et FooterStyle les FooterText propriétés si la ShowFooter propriété est définie sur true. De même, les propriétés du champ de contrôle de données affectent la présentation des éléments d’interface utilisateur en fonction de l’élément. La ItemStyle propriété est toujours appliquée au champ. Si le type dérivé de DataControlField contient un contrôle, comme dans le ou CheckBoxField les ButtonField classes, la ControlStyle propriété est appliquée au champ.
Constructeurs
| Nom | Description |
|---|---|
| DataControlField() |
Initialise une nouvelle instance de la classe DataControlField. |
Propriétés
| Nom | Description |
|---|---|
| AccessibleHeaderText |
Obtient ou définit le |
| Control |
Obtient une référence au contrôle de données auquel l’objet DataControlField est associé. |
| ControlStyle |
Obtient le style de tous les contrôles de serveur Web contenus par l’objet DataControlField . |
| DesignMode |
Obtient une valeur indiquant si un champ de contrôle de données est actuellement consulté dans un environnement au moment du design. |
| FooterStyle |
Obtient ou définit le style du pied de page du champ de contrôle de données. |
| FooterText |
Obtient ou définit le texte affiché dans l’élément de pied de page d’un champ de contrôle de données. |
| HeaderImageUrl |
Obtient ou définit l’URL d’une image affichée dans l’élément d’en-tête d’un champ de contrôle de données. |
| HeaderStyle |
Obtient ou définit le style de l’en-tête du champ de contrôle de données. |
| HeaderText |
Obtient ou définit le texte affiché dans l’élément d’en-tête d’un champ de contrôle de données. |
| InsertVisible |
Obtient une valeur indiquant si l’objet DataControlField est visible lorsque son contrôle parent lié aux données est en mode d’insertion. |
| IsTrackingViewState |
Obtient une valeur indiquant si l’objet DataControlField enregistre les modifications apportées à son état d’affichage. |
| ItemStyle |
Obtient le style d’un contenu textuel affiché par un champ de contrôle de données. |
| ShowHeader |
Obtient ou définit une valeur indiquant si l’élément d’en-tête d’un champ de contrôle de données est rendu. |
| SortExpression |
Obtient ou définit une expression de tri utilisée par un contrôle de source de données pour trier les données. |
| ValidateRequestMode |
Obtient ou définit une valeur qui spécifie si le contrôle valide l’entrée du client. |
| ViewState |
Obtient un dictionnaire d’informations d’état qui vous permet d’enregistrer et de restaurer l’état d’affichage d’un DataControlField objet sur plusieurs requêtes pour la même page. |
| Visible |
Obtient ou définit une valeur indiquant si un champ de contrôle de données est rendu. |
Méthodes
| Nom | Description |
|---|---|
| CloneField() |
Crée une copie en double de l’objet dérivé actuel DataControlField. |
| CopyProperties(DataControlField) |
Copie les propriétés de l’objet dérivé actuel DataControlFieldvers l’objet spécifié DataControlField . |
| CreateField() |
En cas de substitution dans une classe dérivée, crée un objet dérivé vide DataControlField. |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| ExtractValuesFromCell(IOrderedDictionary, DataControlFieldCell, DataControlRowState, Boolean) |
Extrait la valeur du champ de contrôle de données de la cellule de table active et ajoute la valeur à la collection spécifiée IDictionary . |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| Initialize(Boolean, Control) |
Effectue l’initialisation d’instance de base pour un champ de contrôle de données. |
| InitializeCell(DataControlFieldCell, DataControlCellType, DataControlRowState, Int32) |
Ajoute du texte ou des contrôles à la collection de contrôles d’une cellule. |
| LoadViewState(Object) |
Restaure l’état d’affichage précédemment enregistré de la vue de source de données. |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| OnFieldChanged() |
Déclenche l’événement |
| SaveViewState() |
Enregistre les modifications apportées à l’état DataControlField d’affichage depuis la publication de la page sur le serveur. |
| ToString() |
Retourne une chaîne qui représente cet DataControlField objet. |
| TrackViewState() |
Provoque le DataControlField suivi des modifications apportées à son état d’affichage afin qu’ils puissent être stockés dans la propriété du ViewState contrôle et conservés dans les requêtes pour la même page. |
| ValidateSupportsCallback() |
En cas de substitution dans une classe dérivée, signale que les contrôles contenus par un champ prennent en charge les rappels. |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| IDataSourceViewSchemaAccessor.DataSourceViewSchema |
Obtient ou définit le schéma associé à cet DataControlField objet. |
| IStateManager.IsTrackingViewState |
Obtient une valeur indiquant si l’objet DataControlField enregistre les modifications apportées à son état d’affichage. |
| IStateManager.LoadViewState(Object) |
Restaure l’état d’affichage précédemment enregistré du champ de contrôle de données. |
| IStateManager.SaveViewState() |
Enregistre les modifications apportées à l’état DataControlField d’affichage depuis la publication de la page sur le serveur. |
| IStateManager.TrackViewState() |
Provoque le DataControlField suivi des modifications apportées à son état d’affichage afin qu’ils puissent être stockés dans la propriété du ViewState contrôle et conservés dans les requêtes pour la même page. |