DataGrid.AutoGenerateColumns Propriété
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.
Obtient ou définit une valeur indiquant si les objets BoundColumn sont automatiquement créés et affichés dans le contrôle DataGrid pour chaque champ de la source de données.
public:
virtual property bool AutoGenerateColumns { bool get(); void set(bool value); };
public virtual bool AutoGenerateColumns { get; set; }
member this.AutoGenerateColumns : bool with get, set
Public Overridable Property AutoGenerateColumns As Boolean
Valeur de propriété
true
si les objets BoundColumn sont automatiquement créés et affichés ; sinon, false
. La valeur par défaut est true
.
Exemples
L’exemple de code suivant montre comment utiliser la AutoGenerateColumns propriété pour créer automatiquement un BoundColumn objet pour chaque champ de la source de données.
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<!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" >
<script language="C#" runat="server">
ICollection CreateDataSource()
{
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
for (int i = 0; i < 9; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = "Item " + i.ToString();
dr[2] = 1.23 * (i + 1);
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
return dv;
}
void Page_Load(Object sender, EventArgs e)
{
if (!IsPostBack)
{
// Need to load this data only once.
ItemsGrid.DataSource= CreateDataSource();
ItemsGrid.DataBind();
}
}
</script>
<head runat="server">
<title>DataGrid AutoGenerateColumns Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DataGrid AutoGenerateColumns Example</h3>
<b>Product List</b>
<asp:DataGrid id="ItemsGrid"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
AutoGenerateColumns="true"
runat="server">
<HeaderStyle BackColor="#00aaaa">
</HeaderStyle>
</asp:DataGrid>
</form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<!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" >
<script language="VB" runat="server">
Function CreateDataSource() As ICollection
Dim dt As New DataTable()
Dim dr As DataRow
dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32)))
dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
dt.Columns.Add(New DataColumn("CurrencyValue", GetType(Double)))
Dim i As Integer
For i = 0 To 8
dr = dt.NewRow()
dr(0) = i
dr(1) = "Item " & i.ToString()
dr(2) = 1.23 *(i + 1)
dt.Rows.Add(dr)
Next i
Dim dv As New DataView(dt)
Return dv
End Function 'CreateDataSource
Sub Page_Load(sender As Object, e As EventArgs)
If Not IsPostBack Then
' Need to load this data only once.
ItemsGrid.DataSource = CreateDataSource()
ItemsGrid.DataBind()
End If
End Sub 'Page_Load
</script>
<head runat="server">
<title>DataGrid AutoGenerateColumns Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DataGrid AutoGenerateColumns Example</h3>
<b>Product List</b>
<asp:DataGrid id="ItemsGrid"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
AutoGenerateColumns="true"
runat="server">
<HeaderStyle BackColor="#00aaaa">
</HeaderStyle>
</asp:DataGrid>
</form>
</body>
</html>
Remarques
Utilisez cette propriété pour créer automatiquement un BoundColumn objet pour chaque champ de la source de données. Chaque champ est ensuite affiché sous la forme d’une colonne dans le DataGrid contrôle dans l’ordre dans lequel les champs apparaissent dans la source de données.
Tous les types de données ne peuvent pas être liés au DataGrid contrôle. Si un champ contient un type de données non pris en charge, aucune colonne n’est créée pour ce champ. Si la source de données ne contient qu’une seule colonne avec un type de données non pris en charge, une exception est levée. Le tableau suivant montre les types de données qui peuvent être liés au contrôle.
Type de données | Description |
---|---|
Primitives | Type de données primitif, tel que System.Int32, Char, Double, et ainsi de suite. Pour obtenir une liste complète, consultez Type.IsPrimitive. |
String | Objet System.String. |
DateTime | Objet System.DateTime. |
Decimal | Objet System.Decimal. |
Notes
Les colonnes déclarées explicitement peuvent être utilisées conjointement avec des colonnes générées automatiquement. Lors de l’utilisation des deux, les colonnes déclarées explicitement sont rendues en premier, suivies des colonnes générées automatiquement. Les colonnes générées automatiquement ne sont pas ajoutées à la Columns collection.