Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase EditCommandColumn

 

Publicado: octubre de 2016

Tipo de columna especial para el control DataGrid que contiene los botones Edit para editar los elementos de datos en cada fila.

Espacio de nombres:   System.Web.UI.WebControls
Ensamblado:  System.Web (en System.Web.dll)

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

public class EditCommandColumn : DataGridColumn

NombreDescripción
System_CAPS_pubmethodEditCommandColumn()

Inicializa una nueva instancia de la clase EditCommandColumn.

NombreDescripción
System_CAPS_pubpropertyButtonType

Obtiene o establece el tipo de botón de la columna.

System_CAPS_pubpropertyCancelText

Obtiene o establece el texto para mostrar de la Cancel botón de comando en el EditCommandColumn.

System_CAPS_pubpropertyCausesValidation

Obtiene o establece un valor que indica si la validación se realiza cuando un Update botón en el EditCommandColumn se hace clic en el objeto.

System_CAPS_protpropertyDesignMode

Obtiene un valor que indica si la columna está en modo de diseño.(Heredado de DataGridColumn).

System_CAPS_pubpropertyEditText

Obtiene o establece el texto para mostrar de la Edit botón en la EditCommandColumn.

System_CAPS_pubpropertyFooterStyle

Obtiene las propiedades de estilo para la sección de pie de página de la columna.(Heredado de DataGridColumn).

System_CAPS_pubpropertyFooterText

Obtiene o establece el texto mostrado en la sección de pie de página de la columna.(Heredado de DataGridColumn).

System_CAPS_pubpropertyHeaderImageUrl

Obtiene o establece la ubicación de una imagen que se muestra en la sección de encabezado de la columna.(Heredado de DataGridColumn).

System_CAPS_pubpropertyHeaderStyle

Obtiene las propiedades de estilo de la sección de encabezado de la columna.(Heredado de DataGridColumn).

System_CAPS_pubpropertyHeaderText

Obtiene o establece el texto mostrado en la sección de encabezado de la columna.(Heredado de DataGridColumn).

System_CAPS_protpropertyIsTrackingViewState

Obtiene un valor que determina si la DataGridColumn objeto está marcado para guardar su estado.(Heredado de DataGridColumn).

System_CAPS_pubpropertyItemStyle

Obtiene las propiedades de estilo para las celdas de elemento de la columna.(Heredado de DataGridColumn).

System_CAPS_protpropertyOwner

Obtiene el DataGrid control que un miembro de la columna.(Heredado de DataGridColumn).

System_CAPS_pubpropertySortExpression

Obtiene o establece el nombre del campo o expresión que se va a pasar a la OnSortCommand método cuando se selecciona una columna para ordenarla.(Heredado de DataGridColumn).

System_CAPS_pubpropertyUpdateText

Obtiene o establece el texto para mostrar de la Update botón de comando en el EditCommandColumn.

System_CAPS_pubpropertyValidationGroup

Obtiene o establece el grupo de controles de validación para el que la EditCommandColumn objeto ejecuta una validación cuando realiza devoluciones al servidor.

System_CAPS_protpropertyViewState

Obtiene el System.Web.UI.StateBag objeto que permite que una columna derivada de la DataGridColumn clase para almacenar sus propiedades.(Heredado de DataGridColumn).

System_CAPS_pubpropertyVisible

Obtiene o establece un valor que indica si la columna es visible en el DataGrid control.(Heredado de DataGridColumn).

NombreDescripción
System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object).

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodInitialize()

Proporciona la implementación base para restablecer una columna derivada de la DataGridColumn clase a su estado inicial.(Heredado de DataGridColumn).

System_CAPS_pubmethodInitializeCell(TableCell, Int32, ListItemType)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Inicializa una celda de la columna.(Invalida DataGridColumn.InitializeCell(TableCell, Int32, ListItemType)).

System_CAPS_protmethodLoadViewState(Object)

Carga el estado de la DataGridColumn objeto.(Heredado de DataGridColumn).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_protmethodOnColumnChanged()

Llamadas del DataGridDesigner.OnColumnsChanged (método).(Heredado de DataGridColumn).

System_CAPS_protmethodSaveViewState()

Guarda el estado actual de la DataGridColumn objeto.(Heredado de DataGridColumn).

System_CAPS_pubmethodToString()

Devuelve la representación de cadena de la columna.(Heredado de DataGridColumn).

System_CAPS_protmethodTrackViewState()

Hace el seguimiento de cambios de estado de vista para el control de servidor para que puedan almacenarse en el control de servidor System.Web.UI.StateBag objeto.(Heredado de DataGridColumn).

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privmethodIStateManager.LoadViewState(Object)

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Carga el estado guardado anteriormente.(Heredado de DataGridColumn).

System_CAPS_pubinterfaceSystem_CAPS_privmethodIStateManager.SaveViewState()

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Devuelve un objeto que contiene los cambios de estado.(Heredado de DataGridColumn).

System_CAPS_pubinterfaceSystem_CAPS_privmethodIStateManager.TrackViewState()

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Inicia el seguimiento de cambios de estado.(Heredado de DataGridColumn).

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIStateManager.IsTrackingViewState

Esta API admite la infraestructura producto y no está diseñada para usarse directamente desde el código. Obtiene un valor que indica si la columna de seguimiento de cambios de estado de vista.(Heredado de DataGridColumn).

Use the T:System.Web.UI.WebControls.EditCommandColumn class to create a special column for the T:System.Web.UI.WebControls.DataGrid control that contains the Edit, Update, and Cancel buttons for each data row in the grid. These buttons allow you to edit the values of a row in the T:System.Web.UI.WebControls.DataGrid control.

If no row is selected, an Edit button displays in the T:System.Web.UI.WebControls.EditCommandColumn object for each data row in the T:System.Web.UI.WebControls.DataGrid control. When the Edit button for an item is clicked, the E:System.Web.UI.WebControls.DataGrid.EditCommand event is raised and the Edit button is replaced with the Update and Cancel buttons. You need to provide code to handle the E:System.Web.UI.WebControls.DataGrid.EditCommand event. A typical event handler sets the P:System.Web.UI.WebControls.DataGrid.EditItemIndex property to the selected row, and then rebinds the data to the T:System.Web.UI.WebControls.DataGrid control.

System_CAPS_noteNota

You must provide values for the P:System.Web.UI.WebControls.EditCommandColumn.CancelText, P:System.Web.UI.WebControls.EditCommandColumn.EditText, and P:System.Web.UI.WebControls.EditCommandColumn.UpdateText properties. Otherwise, the associated buttons will not appear in the T:System.Web.UI.WebControls.EditCommandColumn.

The buttons in the T:System.Web.UI.WebControls.EditCommandColumn can be set to display as hyperlinks or push buttons by setting the P:System.Web.UI.WebControls.EditCommandColumn.ButtonType property.

Clicking the Update or Cancel button raises the E:System.Web.UI.WebControls.DataGrid.UpdateCommand or E:System.Web.UI.WebControls.DataGrid.CancelCommand event, respectively. You need to provide code to handle these events.

A typical handler for the E:System.Web.UI.WebControls.DataGrid.UpdateCommand event updates the data, sets the P:System.Web.UI.WebControls.DataGrid.EditItemIndex property to -1 (to deselect the item), and then rebinds the data to the T:System.Web.UI.WebControls.DataGrid control.

A typical handler for the E:System.Web.UI.WebControls.DataGrid.CancelCommand event sets the P:System.Web.UI.WebControls.DataGrid.EditItemIndex property to -1 (to deselect the item), and then rebinds the data to the T:System.Web.UI.WebControls.DataGrid control.

System_CAPS_cautionPrecaución

The T:System.Web.UI.WebControls.EditCommandColumn object can be used to display user input, which might include malicious client script. Check any information that is sent from a client for executable script, SQL statements, or other code before displaying it in your application. You can use validation controls to verify user input before displaying the input text in a T:System.Web.UI.WebControls.DataGrid control. ASP.NET provides an input request validation feature to block script and HTML in user input. For more information, see Securing Standard Controls, How to: Protect Against Script Exploits in a Web Application by Applying HTML Encoding to Strings, and Validating User Input in ASP.NET Web Pages.

By default, page validation is performed when an Update button in the T:System.Web.UI.WebControls.EditCommandColumn control is clicked. Page validation determines whether the input controls that are associated with a validation control on the page all pass the validation rules that are specified by the validation control. To prevent page validation from occurring, set the P:System.Web.UI.WebControls.EditCommandColumn.CausesValidation property to false.

The following code example demonstrates how to add an T:System.Web.UI.WebControls.EditCommandColumn object to a T:System.Web.UI.WebControls.DataGrid control.


<%@ 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>

AspNetHostingPermission

for operating in a hosted environment. Demand value: F:System.Security.Permissions.SecurityAction.LinkDemand; Permission value: F:System.Web.AspNetHostingPermissionLevel.Minimal.

AspNetHostingPermission

for operating in a hosted environment. Demand value: F:System.Security.Permissions.SecurityAction.InheritanceDemand; Permission value: F:System.Web.AspNetHostingPermissionLevel.Minimal.

.NET Framework
Disponible desde 1.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: