Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

EditCommandColumn, classe

Type de colonne spécial pour le contrôle DataGrid qui contient les boutons Edit pour modifier des éléments de données dans chaque ligne.

System.Object
  System.Web.UI.WebControls.DataGridColumn
    System.Web.UI.WebControls.EditCommandColumn

Espace de noms :  System.Web.UI.WebControls
Assembly :  System.Web (dans System.Web.dll)
public class EditCommandColumn : DataGridColumn

Le type EditCommandColumn expose les membres suivants.

  NomDescription
Méthode publiqueEditCommandColumnInitialise une nouvelle instance de la classe EditCommandColumn.
Début
  NomDescription
Propriété publiqueButtonTypeObtient ou définit le type de bouton pour la colonne.
Propriété publiqueCancelTextObtient ou définit le texte à afficher pour le bouton de commande Cancel dans EditCommandColumn.
Propriété publiqueCausesValidationObtient ou définit une valeur indiquant si une validation est effectuée suite à un clic sur un bouton Update dans l'objet EditCommandColumn.
Propriété protégéeDesignModeObtient une valeur indiquant si la colonne est en mode design. (Hérité de DataGridColumn.)
Propriété publiqueEditTextObtient ou définit le texte à afficher pour le bouton Edit dans EditCommandColumn.
Propriété publiqueFooterStyleObtient les propriétés de style pour la section de pied de page de la colonne. (Hérité de DataGridColumn.)
Propriété publiqueFooterTextObtient ou définit le texte affiché dans la section de pied de page de la colonne. (Hérité de DataGridColumn.)
Propriété publiqueHeaderImageUrlObtient ou définit l'emplacement d'une image à afficher dans la section d'en-tête de la colonne. (Hérité de DataGridColumn.)
Propriété publiqueHeaderStyleObtient les propriétés de style pour la section d'en-tête de la colonne. (Hérité de DataGridColumn.)
Propriété publiqueHeaderTextObtient ou définit le texte affiché dans la section d'en-tête de la colonne. (Hérité de DataGridColumn.)
Propriété protégéeIsTrackingViewStateObtient une valeur qui détermine si l'objet DataGridColumn est marqué pour enregistrer son état. (Hérité de DataGridColumn.)
Propriété publiqueItemStyleObtient les propriétés de style pour les cellules d'éléments de la colonne. (Hérité de DataGridColumn.)
Propriété protégéeOwnerObtient le contrôle DataGrid dont la colonne est membre. (Hérité de DataGridColumn.)
Propriété publiqueSortExpressionObtient ou définit le nom du champ ou de l'expression à passer à la méthode OnSortCommand lorsqu'une colonne est sélectionnée pour être triée. (Hérité de DataGridColumn.)
Propriété publiqueUpdateTextObtient ou définit le texte à afficher pour le bouton de commande Update dans EditCommandColumn.
Propriété publiqueValidationGroupObtient ou définit le groupe de contrôles de validation pour lequel l'objet EditCommandColumn provoque la validation lors de la publication sur le serveur.
Propriété protégéeViewStateObtient l'objet System.Web.UI.StateBag qui permet à une colonne dérivée de la classe DataGridColumn de stocker ses propriétés. (Hérité de DataGridColumn.)
Propriété publiqueVisibleObtient ou définit une valeur qui indique si la colonne est visible dans le contrôle DataGrid. (Hérité de DataGridColumn.)
Début
  NomDescription
Méthode publiqueEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode protégéeFinalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publiqueGetHashCodeSert de fonction de hachage par défaut. (Hérité de Object.)
Méthode publiqueGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publiqueInitializeFournit l'implémentation de base permettant de rétablir l'état initial d'une colonne dérivée de la classe DataGridColumn. (Hérité de DataGridColumn.)
Méthode publiqueInitializeCellInfrastructure. Initialise une cellule dans la colonne. (Substitue DataGridColumn.InitializeCell(TableCell, Int32, ListItemType).)
Méthode protégéeLoadViewStateCharge l'état de l'objet DataGridColumn. (Hérité de DataGridColumn.)
Méthode protégéeMemberwiseCloneCrée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode protégéeOnColumnChangedAppelle la méthode DataGridDesigner.OnColumnsChanged. (Hérité de DataGridColumn.)
Méthode protégéeSaveViewStateEnregistre l'état actuel de l'objet DataGridColumn. (Hérité de DataGridColumn.)
Méthode publiqueToStringRetourne la représentation sous forme de chaîne de la colonne. (Hérité de DataGridColumn.)
Méthode protégéeTrackViewStateProvoque le suivi des modifications de l'état d'affichage pour le contrôle serveur afin qu'elles puissent être stockées dans l'objet System.Web.UI.StateBag du contrôle serveur. (Hérité de DataGridColumn.)
Début
  NomDescription
Implémentation d'interface explicitePropriété privéeIStateManager.IsTrackingViewStateInfrastructure. Obtient une valeur qui indique si la colonne suit les changements de l'état d'affichage. (Hérité de DataGridColumn.)
Implémentation d'interface expliciteMéthode privéeIStateManager.LoadViewStateInfrastructure. Charge l'état enregistré précédemment. (Hérité de DataGridColumn.)
Implémentation d'interface expliciteMéthode privéeIStateManager.SaveViewStateInfrastructure. Retourne un objet contenant les modifications de l'état. (Hérité de DataGridColumn.)
Implémentation d'interface expliciteMéthode privéeIStateManager.TrackViewStateInfrastructure. Commence à suivre les modifications d'état. (Hérité de DataGridColumn.)
Début

Utilisez la classe EditCommandColumn pour créer une colonne spéciale pour le contrôle DataGrid qui contient les boutons Edit, Update et Cancel pour chaque ligne de données dans la grille. Ces boutons vous permettent de modifier les valeurs d'une ligne dans le contrôle DataGrid.

Si aucune ligne n'est sélectionnée, un bouton Edit s'affiche dans l'objet EditCommandColumn pour chaque ligne de données dans le contrôle DataGrid. Lorsqu'un clic est effectué sur le bouton Edit d'un élément, l'événement EditCommand est déclenché et le bouton Edit est remplacé par les boutons Update et Cancel. Vous devez fournir du code pour gérer l'événement EditCommand. Un gestionnaire d'événements classique affecte la ligne sélectionnée à la propriété EditItemIndex puis lie de nouveau les données au contrôle DataGrid.

RemarqueRemarque

Vous devez fournir des valeurs pour les propriétés CancelText, EditText et UpdateText. Sinon, les boutons associés ne s'affichent pas dans EditCommandColumn.

Les boutons figurant dans EditCommandColumn peuvent être définis pour s'afficher en tant que liens hypertexte ou boutons de commande en définissant la propriété ButtonType.

Un clic sur le bouton Update ou Cancel déclenche l'événement UpdateCommand ou CancelCommand, respectivement. Vous devez fournir du code pour gérer ces événements.

Un gestionnaire standard de l'événement UpdateCommand met à jour les données, affecte -1 à la propriété EditItemIndex (pour désélectionner l'élément), puis relie les données au contrôle DataGrid.

Un gestionnaire standard de l'événement CancelCommand affecte -1 à la propriété EditItemIndex (pour désélectionner l'élément), puis relie les données au contrôle DataGrid.

Mise en gardeAttention

L'objet EditCommandColumn peut être utilisé pour afficher des entrées d'utilisateur qui peuvent inclure un script client malveillant. Recherchez dans toutes les informations envoyées par un client un script exécutable, des instructions SQL ou d'autre code avant de les afficher dans votre application. Vous pouvez utiliser les contrôles de validation pour vérifier les entrées d'utilisateur avant d'afficher le texte d'entrée dans un contrôle DataGrid. ASP.NET fournit une fonctionnalité de validation de demande d'entrée pour bloquer les scripts et le HTML dans les entrées d'utilisateur (user input). Pour plus d'informations, consultez Securing Standard Controls, How to: Protect Against Script Exploits in a Web Application by Applying HTML Encoding to Strings et Validating User Input in ASP.NET Web Pages.

Par défaut, la validation de la page est effectuée suite à un clic sur un bouton Update dans le contrôle EditCommandColumn. Une validation de page détermine si les contrôles d'entrée associés à un contrôle de validation sur la page respectent les règles de validation spécifiées par le contrôle de validation. Pour empêcher la validation de la page de se produire, affectez la valeur false à la propriété CausesValidation.

L'exemple de code suivant illustre comment ajouter un objet EditCommandColumn à un contrôle DataGrid.



<%@ 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 runat="server">

      // The Cart and CartView objects temporarily store the data source
      // for the DataGrid control while the page is being processed.
      DataTable Cart = new DataTable();
      DataView CartView;   

      void Page_Load(Object sender, EventArgs e) 
      {

         // With a database, use an select query to retrieve the data. Because 
         // the data source in this example is an in-memory DataTable, retrieve
         // the data from session state if it exists; otherwise, create the data
         // source.
         GetSource();

         // The DataGrid control maintains state between posts to the server;
         // it only needs to be bound to a data source the first time the page
         // is loaded or when the data source is updated.
         if (!IsPostBack)
         {

            BindGrid();

         }

      }

      void ItemsGrid_Edit(Object sender, DataGridCommandEventArgs e) 
      {

         // Set the EditItemIndex property to the index of the item clicked 
         // in the DataGrid control to enable editing for that item. Be sure
         // to rebind the DateGrid to the data source to refresh the control.
         ItemsGrid.EditItemIndex = e.Item.ItemIndex;
         BindGrid();

      }

      void ItemsGrid_Cancel(Object sender, DataGridCommandEventArgs e) 
      {

         // Set the EditItemIndex property to -1 to exit editing mode. 
         // Be sure to rebind the DateGrid to the data source to refresh
         // the control.
         ItemsGrid.EditItemIndex = -1;
         BindGrid();

      }

      void ItemsGrid_Update(Object sender, DataGridCommandEventArgs e) 
      {

         // Retrieve the text boxes that contain the values to update.
         // For bound columns, the edited value is stored in a TextBox.
         // The TextBox is the 0th control in a cell's Controls collection.
         // Each cell in the Cells collection of a DataGrid item represents
         // a column in the DataGrid control.
         TextBox qtyText = (TextBox)e.Item.Cells[3].Controls[0];
         TextBox priceText = (TextBox)e.Item.Cells[4].Controls[0];

         // Retrieve the updated values.
         String item = e.Item.Cells[2].Text;
         String qty = qtyText.Text;
         String price = priceText.Text;

         DataRow dr;

         // With a database, use an update command to update the data. 
         // Because the data source in this example is an in-memory 
         // DataTable, delete the old row and replace it with a new one.

         // Remove the old entry and clear the row filter.
         CartView.RowFilter = "Item='" + item + "'";
         if (CartView.Count > 0)
         {
            CartView.Delete(0);
         }
         CartView.RowFilter = "";

         // ***************************************************************
         // Insert data validation code here. Be sure to validate the
         // values entered by the user before converting to the appropriate
         // data types and updating the data source.
         // ***************************************************************

         // Add the new entry.
         dr = Cart.NewRow();
         dr[0] = Convert.ToInt32(qty);
         dr[1] = item;

         // If necessary, remove the '$' character from the price before 
         // converting it to a Double.
         if(price[0] == '$')
         {
            dr[2] = Convert.ToDouble(price.Substring(1));
         }
         else
         {
            dr[2] = Convert.ToDouble(price);
         }

         Cart.Rows.Add(dr);

         // Set the EditItemIndex property to -1 to exit editing mode. 
         // Be sure to rebind the DateGrid to the data source to refresh
         // the control.
         ItemsGrid.EditItemIndex = -1;
         BindGrid();

      }

      void BindGrid() 
      {

         // Set the data source and bind to the Data Grid control.
         ItemsGrid.DataSource = CartView;
         ItemsGrid.DataBind();

      }

      void GetSource()
      {

         // For this example, the data source is a DataTable that is stored
         // in session state. If the data source does not exist, create it;
         //  otherwise, load the data.
         if (Session["ShoppingCart"] == null) 
         {     

            // Create the sample data.
            DataRow dr;  

            // Define the columns of the table.
            Cart.Columns.Add(new DataColumn("Qty", typeof(Int32)));
            Cart.Columns.Add(new DataColumn("Item", typeof(String)));
            Cart.Columns.Add(new DataColumn("Price", typeof(Double)));

            // Store the table in session state to persist its values 
            // between posts to the server.
            Session["ShoppingCart"] = Cart;

            // Populate the DataTable with sample data.
            for (int i = 1; i <= 9; i++) 
            {
               dr = Cart.NewRow();
               if (i % 2 != 0)
               {
                  dr[0] = 2;
               }
               else
               {
                  dr[0] = 1;
               }
               dr[1] = "Item " + i.ToString();
               dr[2] = (1.23 * (i + 1));
               Cart.Rows.Add(dr);
            }

         } 

         else
         {

            // Retrieve the sample data from session state.
            Cart = (DataTable)Session["ShoppingCart"];

         }         

         // Create a DataView and specify the field to sort by.
         CartView = new DataView(Cart);
         CartView.Sort="Item";

         return;

      }

      void ItemsGrid_Command(Object sender, DataGridCommandEventArgs e)
      {

         switch(((LinkButton)e.CommandSource).CommandName)
         {

            case "Delete":
               DeleteItem(e);
               break;

            // Add other cases here, if there are multiple ButtonColumns in 
            // the DataGrid control.

            default:
               // Do nothing.
               break;

         }

      }

      void DeleteItem(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 a TableCell.
         TableCell itemCell = e.Item.Cells[2];
         string item = itemCell.Text;

         // Remove the selected item from the data source.         
         CartView.RowFilter = "Item='" + item + "'";
         if (CartView.Count > 0) 
         {     
            CartView.Delete(0);
         }
         CartView.RowFilter = "";

         // Rebind the data source to refresh the DataGrid control.
         BindGrid();

      }

   </script>

<head runat="server">
    <title>DataGrid Editing Example</title>
</head>
<body>

   <form id="form1" runat="server">

      <h3>DataGrid Editing Example</h3>

      <asp:DataGrid id="ItemsGrid"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           OnEditCommand="ItemsGrid_Edit"
           OnCancelCommand="ItemsGrid_Cancel"
           OnUpdateCommand="ItemsGrid_Update"
           OnItemCommand="ItemsGrid_Command"
           AutoGenerateColumns="false"
           runat="server">

         <HeaderStyle BackColor="#aaaadd">
         </HeaderStyle>

         <Columns>

            <asp:EditCommandColumn
                 EditText="Edit"
                 CancelText="Cancel"
                 UpdateText="Update" 
                 HeaderText="Edit item">

               <ItemStyle Wrap="False">
               </ItemStyle>

               <HeaderStyle Wrap="False">
               </HeaderStyle>

            </asp:EditCommandColumn>

            <asp:ButtonColumn 
                 HeaderText="Delete item" 
                 ButtonType="LinkButton" 
                 Text="Delete" 
                 CommandName="Delete"/>  

            <asp:BoundColumn HeaderText="Item" 
                 ReadOnly="True" 
                 DataField="Item"/>

            <asp:BoundColumn HeaderText="Quantity" 
                 DataField="Qty"/>

            <asp:BoundColumn HeaderText="Price"
                 DataField="Price"
                 DataFormatString="{0:c}"/>

         </Columns>

      </asp:DataGrid>

   </form>

</body>
</html>



.NET Framework

Pris en charge dans : 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Tout membre static (Shared en Visual Basic) public de ce type est thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft. Tous droits réservés.