Si se fijan en la imagen, verán que hay un dropdown con elementos agrupados… lo cual es muy bueno para mostrar elementos agrupados.
Por otro lado, hacer esto en puro html es muy simple… pero usar un control ASP.NET para hacer esto no es tan sencillo.
El control que de inmediato se nos viene a la cabeza es el dropdownlist… allí hacemos alguna magia y listo.
Claro, te diré… pero he visto tantos ejemplos en la weB… y tan engorrosos, que digo:
no hay una forma más simple? ni que fuera gran cosa.
Entoces dije: ya sé… en lugar del dropdownlist pongo un control asp:literal… y luego desde el code-beside le agrego el contenido html que debería tener… luego para recuperar el valor seleccionado, simplemente hago un request.form…
y funcionó.
1.- código aspx:
<form id="form1" runat="server"> <asp:Literal ID="ltDropDownList1" runat="server"></asp:Literal> <asp:Button ID="Button1" runat="server" Text="Get" /> </form>
2.- código vb.net:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If IsPostBack Then Return Dim sb As New StringBuilder sb.Append("<select name='MisCursos'>") sb.Append("<optgroup label='Lenguajes de Programación'>") sb.Append("<option value='1'>VB.NET</option>") sb.Append("<option value='2'>C#</option>") sb.Append("<option value='3'>JAVA</option>") sb.Append("<option value='4'>C++</option>") sb.Append("</optgroup>") sb.Append("<optgroup label='Cursos'>") sb.Append("<option value='5'>Algoritmos</option>") sb.Append("<option value='6'>Estructura de datos</option>") sb.Append("<option value='7'>F. de Bases de datos</option>") sb.Append("</optgroup>") sb.Append("</select>") ltDropDownList1.Text = sb.ToString End Sub Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click Dim CursoElegido As String = Request.Form("MisCursos") End SubInclusive, si quieres que se muestre con una opción seleccionada, puedes añadirle selected=”selected” al item que desees:
sb.Append("<option selected='selected' value='3'>JAVA</option>")
Obviamente no tenemos todas las bondades que nos brinda el dropdownlist ( AutoPostBack, FindByValue, etc) pero, muchas veces es suficiente: a veces sólo queremos lista desplegables para elegir opciones y luego presionar un botón.
;)
No hay comentarios.:
Publicar un comentario