Partager via


CommandField Constructeur

Définition

Initialise une nouvelle instance de la classe CommandField.

public:
 CommandField();
public CommandField ();
Public Sub New ()

Exemples

L’exemple de code suivant montre comment utiliser le constructeur pour ajouter dynamiquement une CommandField colonne de champ à un GridView contrôle.


<%@ Page language="C#" %>  

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  void Page_Load(Object sender, EventArgs e)
  {
    // Dynamically generated field columns need to be created only 
    // the first time the page is loaded.
    if (!IsPostBack)
    {
      // Create a CommandField object to display a Select button
      // for each record in the GridView control.
      CommandField selectCommandField = new CommandField();
      selectCommandField.ShowSelectButton = true;
      selectCommandField.SelectText = "Select Company"; 
      
      // Create a BoundField object to display the company names.
      BoundField lastNameBoundField = new BoundField();
      lastNameBoundField.DataField = "au_lname";
      lastNameBoundField.HeaderText = "Last Name";

      // Create a BoundField object to display a customer's company name.
      BoundField nameBoundField = new BoundField();
      nameBoundField.DataField = "CompanyName";
      nameBoundField.HeaderText = "Company Name";

      // Create a BoundField object to display a customer's city.
      BoundField cityBoundField = new BoundField();
      cityBoundField.DataField = "City";
      cityBoundField.HeaderText = "City";

      // Add the field columns to the ColumnFields collection of the
      // GridView control.
      CustomersGridView.Columns.Add(selectCommandField);
      CustomersGridView.Columns.Add(nameBoundField);
      CustomersGridView.Columns.Add(cityBoundField);
    }
  }

  void CustomersGridView_SelectedIndexChanged(Object sender, EventArgs e)
  {
    // Get the value of the company name and city from the appropriate cells.
    String companyName = CustomersGridView.SelectedRow.Cells[1].Text;
    String city = CustomersGridView.SelectedRow.Cells[2].Text;
   
    Message.Text = "You selected " + companyName + " located in " + city + ".";
  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>CommandField Constructor Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>CommandField Constructor Example</h3>

      <asp:label id="Message" 
        forecolor="Red"
        runat="server"/>

      <asp:gridview id="CustomersGridView" 
        datasourceid="CustomersSqlDataSource" 
        autogeneratecolumns="False"
        onselectedindexchanged="CustomersGridView_SelectedIndexChanged" 
        runat="server">                
      </asp:gridview>
            
      <!-- This example uses Microsoft SQL Server and connects  -->
      <!-- to the Northwind sample database. Use an ASP.NET     -->
      <!-- expression to retrieve the connection string value   -->
      <!-- from the Web.config file.                            -->
      <asp:sqldatasource id="CustomersSqlDataSource"  
        selectcommand="Select [CustomerID], [CompanyName], [City] From [Customers]"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
        runat="server">
      </asp:sqldatasource>
            
    </form>
  </body>
</html>

<%@ Page language="VB" AutoEventWireup="False" %>  

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load

    ' Dynamically generated field columns need to be created only 
    ' the first time the page is loaded.
    If Not IsPostBack Then
    
      ' Create a CommandField object to display a Select button
      ' for each record in the GridView control.
      Dim selectCommandField As New CommandField()
      selectCommandField.ShowSelectButton = True
      selectCommandField.SelectText = "Select Company"
      
      ' Create a BoundField object to display the company names.
      Dim lastNameBoundField As New BoundField()
      lastNameBoundField.DataField = "au_lname"
      lastNameBoundField.HeaderText = "Last Name"

      ' Create a BoundField object to display a customer's company name.
      Dim nameBoundField As New BoundField()
      nameBoundField.DataField = "CompanyName"
      nameBoundField.HeaderText = "Company Name"

      ' Create a BoundField object to display a customer's city.
      Dim cityBoundField As New BoundField()
      cityBoundField.DataField = "City"
      cityBoundField.HeaderText = "City"

      ' Add the field columns to the ColumnFields collection of the
      ' GridView control.
      CustomersGridView.Columns.Add(selectCommandField)
      CustomersGridView.Columns.Add(nameBoundField)
      CustomersGridView.Columns.Add(cityBoundField)
      
    End If
      
  End Sub

  Sub CustomersGridView_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles CustomersGridView.SelectedIndexChanged
    
    ' Get the value of the company name and city from the appropriate cells.
    Dim companyName As String = CustomersGridView.SelectedRow.Cells(1).Text
    Dim city As String = CustomersGridView.SelectedRow.Cells(2).Text
   
    Message.Text = "You selected " & companyName & " located in " & city & "."
    
  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>CommandField Constructor Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>CommandField Constructor Example</h3>

      <asp:label id="Message" 
        forecolor="Red"
        runat="server"/>

      <asp:gridview id="CustomersGridView" 
        datasourceid="CustomersSqlDataSource" 
        autogeneratecolumns="False"
        runat="server">                
      </asp:gridview>
            
      <!-- This example uses Microsoft SQL Server and connects  -->
      <!-- to the Northwind sample database. Use an ASP.NET     -->
      <!-- expression to retrieve the connection string value   -->
      <!-- from the Web.config file.                            -->
      <asp:sqldatasource id="CustomersSqlDataSource"  
        selectcommand="Select [CustomerID], [CompanyName], [City] From [Customers]"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
        runat="server">
      </asp:sqldatasource>
            
    </form>
  </body>
</html>

Remarques

Utilisez ce constructeur pour initialiser une nouvelle instance de la CommandField classe. Ce constructeur est couramment utilisé lors de l’ajout de champs à un contrôle lié aux données créé dynamiquement.

Pour ajouter dynamiquement un CommandField champ à un contrôle lié aux données, créez un CommandField objet, définissez ses propriétés, puis ajoutez-le à la collection de champs du contrôle lié aux données. Par exemple, si vous utilisez le GridView contrôle, ajoutez l’objet CommandField à la Columns collection.

Notes

Bien que vous puissiez ajouter dynamiquement des champs à un contrôle lié aux données, il est fortement recommandé que les champs soient déclarés statiquement, puis affichés ou masqués, selon les besoins. La déclaration statique de tous vos champs réduit la taille de l’état d’affichage pour le contrôle parent lié aux données.

S’applique à

Voir aussi