DropDownlist en un DataGrid

juan.fuentes
02 de Diciembre del 2003
Tengo duda sobre como colocar un combo box en un datagrid.

Mi intención es formar un grid con las siguientes columnas:

1.- Horario
2.- Lunes
3.- Martes
4.- Miercoles
5.- Jueves
6.- Viernes
7.- Sabado

Entonces la columna Horario mostrara en cada fila algo semejante a esto:
08:00 - 09:00
09:00-10:00
.....
23:00-24:00
y en las columnas de Lunes a Viernes al darle click en alguna celda de las filas de esas columnas debe de aperecer un combo con datos que correponden a esa hora y ese día, es decir:

Si yo realizo click en la fila con Hora 08:00-09:00 y Lunes, entonces el combo me mostrara datos con esos filtros, por ejemplo filtrar todos los maestros que pueden dar clases de 08:00-09:00 el día lunes.

Lo que me tiene con dolores de cabeza es que no logro colocar un combo y manipularlo, .

He leeido algunos articulos en este mismo foro sobre algo semejante pero en mi caso sobre un combo en un datagrid no he visto ejemplos, alguien de ustedes conoce algún sitio para consultar información al respecto ??? o me podria sugerir algunos tips ??

Gracias de antemano.
Thanks in advance
Saludos!!

Elph
02 de Diciembre del 2003
Buenas,
No veo el motivo de querer poner el combo dentro del grid, puedes tenerlo fuera i q sea compartido por todos, haciendo q se actualize cada click en una zona del grid.
De todas maneras, para hacerlo dentro debes asegurarte q al hacer el click en el boton, el metodo q debe manejar ese evento debe saber q boton se ha clickado i q combo debe llenar.
Otra opcion es llenarlos todos al cargar el grid i jugar con su visibilidad, pero si la carga es muy alta esto no seria muy buena idea..
Otra cosa q debes hacer es trabajar con templates dentro de las columnas del grid.

Trabajar con un datagrid no siempre es la mejor idea, por muy potente q sea,a veces con un repeater o un datalist haces lo mismo, mas rapido i mas facil...

Suerte...

juan.fuentes
02 de Diciembre del 2003
Gracias Elph, mira me he encontrado un link de MSDN y he seguido algunas sugerencias para insertar un combo dentro de un datagrid y por fin ya pude colocar este control, pero ahora cuando corro la aplicación el grid se pobla correctamente pero cuando realizo click en la columna en donde aparece el combo no me lo muestra, de hecho aqui esta una pequeña seccion de codigo, a ver si me puedes sugerir:

<Columns>
<asp:BoundColumn DataField="Expr1" SortExpression="Expr1" HeaderText="RegionID"></asp:BoundColumn>

<asp:TemplateColumn SortExpression="Expr2" HeaderText="Pais">
<ItemTemplate>
<asp:Label id=Label4 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Expr2") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList id="DropDownList1" runat="server" Width="90px">
<asp:ListItem Value="Eastern">Eastern</asp:ListItem>
<asp:ListItem Value="Western">Western</asp:ListItem>
<asp:ListItem Value="Northern">Northern</asp:ListItem>
<asp:ListItem Value="Southern">Southern</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>

Podrias sugerirme por que no muestra el combo ??

Gracias una vez mas

Elph
02 de Diciembre del 2003
El problema q tienes es q estas usando dos plantillas,
la itemTemplate, q seria la plantilla normal de elemento i la editItemTemplate q seria la q se cargaria en modo edicion. Es decir, en modo normal se veria tu label, i en modo edicion se veria el drop.
Para activar el modo edicion debes agregar una columna <asp:EditCommandColumn>.

El problema sera q en modo normal esa columna tendra el texto editar, por ejmplo, i al entrar en modo edicion te pondra dos opciones, cancelar o actualizar.
Siempre puedes no Actualizar los datos una vez sales del modo edicion,Aunq, yo en tu lugar, en vez de usar la editItem template, lo pondria todo en la ItemTemplate(dropdown i label) i jugaria con la visibilidad de cada objeto...

Suerte...