Imaginen que tenemos una tabla en nuestra B.D. pero algunos de esos campos son los pk. de otras tablas a la cual la nuestra está relacionada. El ejemplo que les traigo es con una tabla de materias. Mi tabla de materias está relacionada a los cursos y a los profesores. Si cargamos la tabla directamente de la B.D. en el grid luciría así:
El problema es que esto no es muy presentable para un cliente, el cliente preferiría que se viera así:
Muchísimo mejor, no?
Entonces.. Cómo hacemos esto?
- Lo primero que debemos hacer es hacer clic en la flecha de la esquina superior derecha del grid
- Vas a Edit Columns
- Seleccionas la columna que quieres cambiar
- Haces click en "Convert to Template Field"
- Sales de la pantallita de Fields del GridView
- Vuelves a darle a la flechita de la esquina superior
- Y esta vez haces clic en "Edit Templates"
- En esa nueva flechita en la parte superior clickeas y seleccionas el campo con el que vas a trabajar
- Entonces en la parte de ItemTemplate y de EditItemTemplate colocas un DropDownList
- Ese DDL lo cargas con un objectDataSource que apunte a la tabla de "Profesores" o "Curso " en el caso del ejemplo
- Y en la parte de EditDataBinding del componente seleccionas el campo de la tabla de Materias con el que se va a cargar, en mi caso "id_curso" y "id_profesor"
Eso es todo, así el cliente entenderá más la pantalla y de seguro le gustara mucho más.
Cheers!!
10 comentarios:
exceleten esta muy bien echo gracias
oye! muchísimas gracias, así como lo explicas parece extremadamente fácil. creo que es un posta muy claro y concreto. Nuevamente gracias.
muchas gracias por la informacion .... tengo un problema con los DDL
..
Cuando estoy enviando los datos del DDl me sale un error =
"System.ArgumentOutOfRangeException: 'DropDownList1' has a SelectedValue which is invalid because it does not exist in the list of items."
No se q hacer llebo dias en ese error
Muchas Gracias :D
Revisa si el valor que te esta cargando el gridview es un valor que se encuentre dentro de tu dropdownlist. Ese error se debe a que el valor no esta en tu lista y recuerda tambien que ese dropdownlist que va dentro del gridview tiene su datasource individual osea que cuidado si lo confundes con otro.
muy buen aporte al mundo de la programación y a mi proyecto gracias ni en 15 minutos resolví mi problema thanks!
muchas gracias por la alclaración... me sirvió super bien sin embargo tengo un problema y es que al gridview lo tengo enlazado a un datasource y en el mismo tengo querys de delete y update, el update me da un problema ya que al momento de poner el arguento por decir:
Update...
Set..
campo = @argumento
where...
me salta un error diciendo que no está definida la variable @argumento sin embargo el nombre de ese template es el mismo que tenia antes de cpnvertir la columna en plantilla.
Me podrían ayudar con esto, es para un proyecto final de semstere.
Hola Bendiciones:
Como accedo al valor seleccionado en el DropDown?
Tengo un Problema con ello, Atento a su respuesta.
Gracias
Eso que necesitas lo haces con el método FindControl
aqui te dejo un link de este blog donde tienes un ejemplo de eso que necesitas: http://recuerdaprogramacionrapido.blogspot.com/2007/09/tomar-el-valor-de-objetos-dentro-de-un.html
y aqui esta la referencia de msdn:
http://msdn.microsoft.com/es-es/library/486wc64h(v=vs.80).aspx
Gracias!
drdd
Publicar un comentario