ButtonColumn.DataTextField Propriété

Définition

Obtient ou définit le nom de champ issu d'une source de données à lier à l'objet ButtonColumn.

public:
 virtual property System::String ^ DataTextField { System::String ^ get(); void set(System::String ^ value); };
public virtual string DataTextField { get; set; }
member this.DataTextField : string with get, set
Public Overridable Property DataTextField As String

Valeur de propriété

Nom du champ à lier à la colonne ButtonColumn. La valeur par défaut est une chaîne vide ("").

Exemples

L’exemple de code suivant montre comment utiliser la DataTextField propriété pour lier l’objet ButtonColumn à un champ dans une 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) 
         {
            // Load this data only once.
            ItemsGrid.DataSource= CreateDataSource();
            ItemsGrid.DataBind();
         }
      }
 
      void Grid_CartCommand(Object sender, DataGridCommandEventArgs e) 
      {
         
         // e.Item is the table row where the command is raised.
         // For bound columns, the value is stored in the Text property of the TableCell.
         Label1.Text = "You selected: " + e.Item.Cells[0].Text + ".";        
 
      }
 
   </script>
 
<head runat="server">
    <title>ButtonColumn Example</title>
</head>
<body>
 
   <form id="form1" runat="server">
 
      <h3>ButtonColumn Example</h3>
 
 
      <b>Product List</b>
 
      <asp:DataGrid id="ItemsGrid"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           AutoGenerateColumns="false"
           OnItemCommand="Grid_CartCommand"
           runat="server">

         <HeaderStyle BackColor="#00aaaa">
         </HeaderStyle>
 
         <Columns>
 
            <asp:BoundColumn 
                 HeaderText="Item" 
                 DataField="StringValue"/>

            <asp:ButtonColumn 
                 HeaderText="Price" 
                 ButtonType="PushButton" 
                 DataTextField="CurrencyValue"
                 DataTextFormatString="{0:C}"
                 CommandName="AddToCart" /> 

         </Columns>

      </asp:DataGrid>

      <br /><br />

      <asp:Label id="Label1" runat="server"/>
 
   </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)
            CreateDataSource = dv
        End Function 'CreateDataSource


        Sub Page_Load(sender As Object, e As EventArgs)
            If Not IsPostBack Then
                ' Load this data only once.
                ItemsGrid.DataSource = CreateDataSource()
                ItemsGrid.DataBind()
            End If
        End Sub 'Page_Load


        Sub Grid_CartCommand(sender As Object, e As DataGridCommandEventArgs)
            
            ' e.Item is the table row where the command is raised.
            ' For bound columns, the value is stored in the Text property of the TableCell.
            Label1.Text = "You selected: " + e.Item.Cells(0).Text + "."
        End Sub 'Grid_CartCommand 
   </script>
<head runat="server">
    <title>ButtonColumn Example</title>
</head>
<body>
 
   <form id="form1" runat="server">
 
      <h3>ButtonColumn Example</h3>
 
 
      <b>Product List</b>
 
      <asp:DataGrid id="ItemsGrid"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           AutoGenerateColumns="false"
           OnItemCommand="Grid_CartCommand"
           runat="server">

         <HeaderStyle BackColor="#00aaaa">
         </HeaderStyle>
 
         <Columns>
 
            <asp:BoundColumn 
                 HeaderText="Item" 
                 DataField="StringValue"/>

            <asp:ButtonColumn 
                 HeaderText="Price" 
                 ButtonType="PushButton" 
                 DataTextField="CurrencyValue"
                 DataTextFormatString="{0:C}"
                 CommandName="AddToCart" /> 

         </Columns>

      </asp:DataGrid>

      <br /><br />

      <asp:Label id="Label1" runat="server"/>
 
   </form>
 
</body>
</html>

Remarques

Utilisez la DataTextField propriété pour spécifier le nom de champ de la source de données à lier à la Text propriété des boutons dans l’objet ButtonColumn .

La liaison de la colonne à un champ au lieu de définir directement la Text propriété vous permet d’afficher différentes légendes pour les boutons du ButtonColumn en utilisant les valeurs du champ spécifié.

La valeur de cette propriété est stockée dans l’état d’affichage.

S’applique à

Voir aussi