Actualización: noviembre 2007
Si está utilizando una control enlazado a datos con plantillas (como un control DataList o FormView) y las plantillas incluyen controles de servidor Web Button, LinkButton o ImageButton, entonces los botones pueden reenviar sus eventos Click al control contenido. Esto le permite incluir los botones para la funcionalidad personalizada aún no definidos para el control enlazado a datos (como edición, eliminar, actualizar y cancelar).
Para responder a los eventos de botón en controles enlazados a datos
Agregue un Button, LinkButton o ImageButton en una plantilla de control.
Establezca la propiedad CommandName del botón en una cadena que identifique su función, como "sort" o "copy".
Cree un método para el evento ItemCommand del control. En el método, haga lo siguiente:
Compruebe la propiedad CommandName del objeto argumento del evento para ver qué cadena de comando se ha transferido.
Ejecute la lógica adecuada para el botón en que hizo clic el usuario.
En el ejemplo siguiente se muestra cómo se puede responder a un clic del botón en un control DataList. En el ejemplo, la propiedad ItemTemplate contiene un control ImageButton que muestra un carro de la compra. El botón envía el comando AddToCart. El controlador de eventos determina el botón en que se hizo clic y, si fue el botón del carro de la compra, ejecuta la lógica correspondiente.
Visual BasicPrivate Sub DataList1_ItemCommand(ByVal source As Object, _ ByVal e As DataListCommandEventArgs) _ Handles DataList1.ItemCommand If (e.CommandName = "AddToCart") Then ' Add code here to add the item to the shopping cart. ' Use the value of e.Item.ItemIndex to find the data row ' in the data source. End If End Sub
C#private void DataList1_ItemCommand(object source, DataListCommandEventArgs e) { if (e.CommandName == "AddToCart") { // Add code here to add the item to the shopping cart. // Use the value of e.Item.ItemIndex to find the data row // in the data source. } }