Cómo recuperar un valor modificado del cuadro de texto enlazado a datos dentro de la cuadrícula de datos

StackOverflow https://stackoverflow.com/questions/78847

  •  09-06-2019
  •  | 
  •  

Pregunta

ASP.NET 1.1: tengo un DataGrid en una página ASPX que está enlazada a datos y muestra un valor dentro de un cuadro de texto.El usuario puede cambiar este valor, luego hacer clic en un botón donde el código subyacente básicamente itera a través de cada DataGridItem en la cuadrícula, realiza un FindControl para el ID del cuadro de texto y luego asigna el valor .Text a una variable que luego se usa para actualizar la base de datos.El DataGrid se recupera con los nuevos valores.

El problema que tengo es que al asignar el valor .Text a la variable, el valor que se recupera es el valor original del enlace de datos y no el valor del usuario recién ingresado.¿Alguna idea sobre qué puede estar causando este comportamiento?

Ejemplo de código:

foreach(DataGridItem dgi in exGrid.Items)
{
    TextBox Text1 = (TextBox)dgi.FindControl("TextID");
    string exValue = Text1.Text; //This is retrieving the original bound value not the newly entered value
    // do stuff with the new value
}
¿Fue útil?

Solución

Entonces, ¿el ejemplo de código proviene del evento de clic de botón?

¿Está seguro de que no va a volver a vincular su fuente de datos en la devolución de datos?

Otros consejos

¿Cuándo intenta recuperar el valor del cuadro de texto?es decir.¿Cuándo se ejecuta el ejemplo de código que proporcionaste?

Si aún no lo has hecho, querrás configurar un método de controlador para el evento ItemCommand de DataGrid.Deberías buscar el nuevo valor de TextBox dentro de ese método.También debe asegurarse de que su DataGrid no se vuelva a enlazar en la devolución de datos.

También recomiendo leer la excelente serie de artículos de Scott Mitchell sobre el uso del control DataGrid y todas sus funciones:http://aspnet.4guysfromrolla.com/articles/040502-1.aspx

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top