Foros del Web » Programación para mayores de 30 ;) » .NET »

HtmlSelect en DataGrid

Estas en el tema de HtmlSelect en DataGrid en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 18/04/2005, 08:50
 
Fecha de Ingreso: abril-2005
Mensajes: 49
Antigüedad: 19 años
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.
  #2 (permalink)  
Antiguo 18/04/2005, 09:02
 
Fecha de Ingreso: abril-2005
Mensajes: 49
Antigüedad: 19 años
Puntos: 0
Disculpen el ruido, ya lo resolví cambiando la línea:

((HtmlSelect) i.FindControl("S_TipoUsuario")).Value=DataBinder.E val(i.DataItem, "TipoUsuario").ToString();

por:

((HtmlSelect) i.FindControl("S_TipoUsuario")).Value=i.Cells[4].Text;

Al final las columnas invisibles sí servían. Mi intuición supo más que mi conciencia racional.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:17.