Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/04/2005, 08:50
GabiAPF
 
Fecha de Ingreso: abril-2005
Mensajes: 49
Antigüedad: 19 años, 10 meses
Puntos: 0
HtmlSelect en DataGrid

Acá estoy de nuevo con otro problema con DataGrids.

Mi nueva DataGrid tiene 3 columnas visibles y 3 invisibles (no sé qué tan necesarias son las invisibles, pero por ahora ahí están). Éstas son las definiciones de las columnas.

<asp:BoundColumn HeaderText="IdUsuario" ReadOnly="true" DataField="IdUsuario" Visible="False" />
<asp:BoundColumn HeaderText="Usuario" ReadOnly="true" DataField="NombreUsuario" ItemStyle-Font-Bold=False ItemStyle-Font-Name="Times New Roman" />
<asp:TemplateColumn HeaderText="Tipo" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<select id="S_TipoUsuario" runat="server">
<option value=3>S&oacute;lo consultas</option>
<option value=2>Com&uacute;n</option>
<option value=1>Cerrador de tareas</option>
<option value=0>Administrador</option>
</select>
</ItemTemplate>
</asp:TemplateColumn>

<asp:TemplateColumn HeaderText="Recibe<br>notificaciones" HeaderStyle-Font-Size="8" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:CheckBox Text="" runat="server" ID="CB_Recibe" Checked=<%# (DataBinder.Eval(Container.DataItem, "RecibeNotificaciones").ToString()=="1") %>/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn HeaderText="TipoUsuario" ReadOnly="true" DataField="TipoUsuario" Visible="False" />
<asp:BoundColumn HeaderText="RecibeNotificaciones" ReadOnly="true" DataField="RecibeNotificaciones" Visible="False" />


Hasta ahí, tobo bien. La columna de los CheckBoxes se llena bien con los datos de la base, y todo parece funcionar.

Pero ahora yo quiero que los Selects de la columna marcada en negrita se carguen con una opción por defecto, que provenga de la base de datos. Estuve buscando, pero no encuentro cómo hacerlo. Lo último que probé fue poner esto en la función Page_Load:

foreach (DataGridItem i in DG_EditarUsuarios.Items)
{
((HtmlSelect) i.FindControl("S_TipoUsuario")).Value=DataBinder.E val(i.DataItem, "TipoUsuario").ToString();
}


Pero esto no funciona, me tira una excepción de referencia nula. Cuando lo corro con el debugger, veo que i.DataItem no está definido (me dice <undefined value> y no entiendo por qué. ¿Alguien podría ayudarme, y decirme qué estoy haciendo mal? Otras propuestas de mejores maneras para hacer lo que busco también son bienvenidas.

Gracias,
Gabi.