Aunque ASP.NET DataGrid es bien conocido como un muy buen control de tabla, no podemos elogiar la función de edición de DataGrid. Tomando como ejemplo la función de envío de datos de DataGrid, de hecho hay un gran problema: en DataGrid, cada Para editar una línea. , debe enviar una línea, que es la llamada "edición de una sola línea, envío de una sola línea". En este caso, si se editan demasiadas líneas, la operación del usuario no solo será engorrosa, sino que también provocará un acceso frecuente. al servidor, lo que reduce en gran medida la eficiencia del sistema.
Por supuesto, existe una solución resucitada, que consiste en transferir el contenido a editar a otras páginas y editarlo en TextBox. Sin embargo, si lo piensa detenidamente, ¿no le engaña este método? Además, cuando editamos en el Grid, no siempre podemos usar la tecla Tab para saltar entre el Grid (TextBox) si la respuesta es Enter Events. programadores desperdicien mucha energía en el desarrollo.
¿Cómo resolver los problemas anteriores? Ahora les recomiendo un DataGrid doméstico que estoy usando: SmartGrid (se puede descargar desde Sky Software Station: http://www.skycn.com/soft/23547.html ). He estado usando este control durante mucho tiempo. Ahora analicemos el método de envío de varias filas de SmartGrid: SmartGrid no tiene columnas de botones en DataGrid, todo el formulario tiene solo un botón de envío, ya sea que cambie una o varias filas, puede enviarlas todas a la vez. , de la siguiente manera Echemos un vistazo a algunos ejemplos:
Ejemplo:
la imagen de arriba es un mejor ejemplo de edición. El ejemplo muestra que puede editar varias líneas o una línea y luego enviarlas juntas.
Código:
Modifique el código del botón:
private void btonSave_Click(object sender, System.EventArgs e)
{
this.DataGrid1.ReadOnly = false;//Ingrese a editar
this.DataGrid1.AllowAdd = true;//Permita agregar
this.DataGrid1.AllowDelete = true; //Permitir eliminación
}
Este código es un atributo único de smartgrid. Puede configurar varias funciones para agregar, eliminar, editar
y guardar el código del botón:
del
objeto, System.EventArgs e)
{
DataTable t = (DataTable)this.SmartGrid1.DataSource;
this.sqlDataAdapter1.Update
(t.Clear
();
.SmartGrid1.DataSource = t;
}
Esto es para enviar los datos a la base de datos en su conjunto. Este enfoque es adecuado para grandes cantidades de datos.
También hay una forma de enviar los datos al
código del servidor línea por línea
. btonSave_Click(remitente del objeto, System. EventArgs e)
{
DataTable tb=(DataTable)this.SmartGrid1.DataSource;
SqlParameter
[]
parámetros
=new SqlParameter[5];
SqlParameter("@customerId", ""+dr[1]+"");
parámetros
[1]=nuevo SqlParameter("@companyName",""+dr[0]+"");
SqlParameter("@contactName", ""+dr[2]+"");
parámetros
[3]=new SqlParameter("@contactTitle",""+dr[3]+"");
SqlParameter("@address", ""+dr[4]+"");
//EamPd es una clase. Execute es una función para ejecutarprocedimientos
almacenados. Los parámetros son los necesarios para los procedimientos almacenados.
",parámetros);
}
}