Para editar datos en el control DataGrid, utilice la columna "Editar, Actualizar, Cancelar" en la "Columna de botones". Estos se pueden configurar como el control DataGrid en el generador de propiedades del
control DataGrid (tome el nombre del control dg1 como un). ejemplo), habrá una columna más en el control dg1 de la página. Cada elemento de esta columna es un LinkButton/Button con el texto "Editar".
Si hace clic en el botón "Editar" de una fila, la fila está en modo de edición, el botón "Editar" se reemplaza por los botones "Actualizar" y "Cancelar", y todas las demás columnas auxiliares de datos que no son de solo lectura en el La fila se cambiará a un formato de control TextBox para que los usuarios puedan editarla y modificarla.
Cuando el usuario modifica los datos de la columna de datos que no son de solo lectura (en el control TextBox), hace clic en el botón "Actualizar", guarda el nuevo valor (generalmente en la base de datos), hace clic en el botón "Cancelar", la fila Salir modo de edición.
Para lograr el efecto de cambiar al modo de edición de filas haciendo clic en el botón "Editar", se debe escribir el método de manejo de eventos EditCommand de dg1. Para lograr el efecto de guardar el nuevo valor haciendo clic en el botón "Actualizar", se debe escribir el método de manejo de eventos UpdateCommand de dg1. Para hacer clic en el botón "Cancelar" para salir del modo de edición de línea, debe editar el método de manejo de eventos CancelCommand de dg1
1) Método de manejo de eventos dg1.EditCommand: ingrese la edición de línea. modo
-------------------------------------------------- ----
vacío privado dg1_EditCommand (fuente del objeto, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dg1.EditItemIndex = e.Item.ItemIndex; //Establece el índice del elemento a editar
binddg1(); //Método para vincular datos a dg1. Después de configurar el elemento a editar, es necesario volver a vincular dg1
}
-------------------------------------------------- -------
2) Método de manejo de eventos dg1.CancelCommand: salir del modo de edición de filas
-------------------------------------------------- -------
vacío privado dg_CancelCommand (fuente del objeto, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dg1.EditItemIndex = e.Item.ItemIndex; //El índice del elemento editado es -1, lo que significa que no se edita ningún elemento.
binddg1(); //Después de restablecer EditItemIndex, es necesario volver a vincular dg1
}
-------------------------------------------------- -------
3) Método de manejo de eventos dg1.UpdateCommand: guardar valores actualizados Para guardar valores actualizados, primero debe obtener estos nuevos valores de la página. En el método de procesamiento de eventos, se deben implementar tres funciones principales:
Obtenga valores actualizados, actualice esos valores y salga del modo de actualización de filas.
Generalmente, los datos que se muestran en el control DataGrid se obtienen de la tabla de la base de datos, por lo que el valor actualizado también debe guardarse en la base de datos. Puede utilizar una instrucción Sql de actualización o un procedimiento almacenado para realizar la actualización.
Obtener los valores de las columnas de una página en una fila en modo de edición requiere algunos trucos. Tome las columnas vinculantes como ejemplo:
Obtenga el valor de una columna enlazada de solo lectura: e.Item.Cells[índice de columna].Text //La columna de ayuda de solo lectura está en un estado no editable Obtenga el valor de una columna enlazada de solo lectura: ((TextBox)(e.Item. Cells[Column Index].Controls[0])).Text //En el estado de edición,
la columna de ayuda de solo lectura suele ser la columna de clave principal de la tabla. Su valor de columna debe ser. utilizados en la cláusula donde de la declaración de actualización Generalmente, no se actualizan.
Ejemplo de código:
-------------------------------------------------- --------
vacío privado DataGrid1_UpdateCommand (fuente del objeto, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//Columna enlazada de solo lectura, en estado no editable
cadena ID de cliente = e.Item.Cells[1].Text;
//Columna enlazada de no solo lectura, en estado de edición
nombre de la empresa de cadena = ((TextBox)(e.Item.Cells[2].Controls[0])).Text;
ciudad de cadena = ((TextBox)(e.Item.Cells[3].Controls[0])).Text
String strSql = "actualizar el conjunto de clientes nombre de la empresa = '" + nombre de la empresa +;
"',ciudad = '" + ciudad + "' donde idcliente = '" + idcliente + "'";
ejecutarSql(strSql); //Ejecutar la declaración de actualización para actualizar
DataGrid1.EditItemIndex = -1 //Salir del modo de edición de filas;
enlazarg1();
}