Hola a tod@s:
Trabajo en C#
A la hora de recoger los valores de la fila a actualizar, en un DataGrid de la versión anterior del VisualStudio 2005, dentro del UpdateCommand ponía lo siguiente:
Código:
private void elDataGrid_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
...
string elValor = ((TextBox)e.Item.Cells[1].Controls[0]).Text;
...
}
estando el valor a cambiar en una caja de texto.
Ahora, en la versión 2005 del VisualStudio para hacer lo mismo en un GridView , dentro de su
_RowUpdating, ya lo que he mencionado antes no funciona de la misma manera ó no se captura de esa forma...
Buscando por internet, encontré algo como lo que sigue, detallando que los valores se capturaban según si venían de un
BoundField ó de un
TemplateField:
Código:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
...
//en C#
//SI LA CAJA DE TEXTO ESTÁ DENTRO DE UN BoundField
string valorBoundField = GridView1.Rows[index].Cells[column_index].Text;
//SI LA CAJA DE TEXTO ESTÁ DENTRO DE UN TemplateField
string valorTemplateField = ((TextBox)(GridView1.Rows[index].FindControl("TextBox_ID"))).Text;
...
}
Basándome en esto, y usando el evento
e del _RowUpdating, finalmente, he puesto esto, considerando que tengo por cada fila dos datos para cada registro (solo uno de ello, el 1º, se activa para poder editarlo y el otro, el 2º, está a
ReadOnly=true), y cada uno está en un BoundField:
Código:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
...
string valorBoundField = GridView1.Rows[e.RowIndex].Cells[1].Text;
...
}
Pero me sigue sin capturar el valor deseado. Me llega una cadena vacía.
En mi GridView, en la primera columna están los enlaces de Editar. Eliminar Seleccionar; en la 2ª columna el valor a editar, y en la 3ª el que está con ReadOnly a True.
Lo raro, es que si pongo tanto "Cells[0]" como "Cells[1]", me llega una cadena vacía, y si pongo "Cells[2]" me llega el texto de la caja no editable.
¿¿¿Alguien me podría decir como se captura exactamente los valores a actualizar de una fila del GridVew, en C# y ASP.NET 2.0???
ó ¿¿¿decirme lo que está mal en el código pasado???