
.NET
Una de las cosas típicas que se realizan con los GridViews son los mantenedores en los cuales seleccionas una fila y los valores de las celdas se pasan a los Textbox para poder manipularlos.
Pero pasa que cuando ocultamos columnas en el GridView no podemos tener acceso a ella si usamos .NET Framework 2.0, por lo que debemos usar la propiedad DataKeyNames del GridView.
<asp:GridView ID=”gvDatos” runat=”server” AutoGenerateColumns=”False” OnSelectedIndexChanged=”gvDatos_SelectedIndexChanged” DataKeyNames=”Campo1,Campo2″>
<Columns>
<asp:BoundField Visible=”False” DataField=”Campo1″ ></asp:BoundField>
<asp:BoundField Visible=”False” DataField=”Campo2″ ></asp:BoundField>
………..
DataKeyNames contendrá los campos ocultos pero podremos recuperar sus valores.
Luego en el evento
[codesyntax lang="vbnet"]protected Sub gvDatos_SelectedIndexChanged(ByVal object sender, ByVal EventArgs e)
txtTuCampoDeTexto.Text = gvDatos.DataKeys(“nombreCampo”).Values.ToString()
End Sub[/codesyntax]
Eso es todo.
Así que ya sabes como solucionar este problemilla.


Una consulta. Aplico esto mismo para tomar el valor de un campo de un detailsview y luego ponerlo en un textbox? Me explico: tengo un detailsview que me carga datos de mi bd segun un querystring que me permite mostrar los datos de un elemento seleccionado. Entonces lo que quiero hacer es que, al abrir esta pagina con el details view (por ejemplo: detailsview que tiene boundfields id_hola y hola), un textbox que tengo ahi sea igual (aparezca en pantalla – propiedad .text) el mismo valor que el boundfield “hola”). Se puede hacer eso? Puedo aplicar esto mismo a eso?
Saludos y gracias por la solucion.
Si… se puede hacer y debes buscar información acerca de los Bindings