Como agregar un “dropdown” o “combobox” a un gridview en asp.net

By | 2010/01/19

Estoy trabajando en una aplicación que necesita que se le asignen clientes a los agentes de una tienda. Esta muestra en un gridview todas las asignaciones y dentro de ese gridview me debe permitir reasignar a otro agente a través de un combobox o dropdown. Por esta razón me vi obligado a ingresar un combobox al gridview.

Esta fue la solución:

En el área de html tenemos:

<asp:GridView ID=”drg_queue” runat=”server” AutoGenerateColumns=”False”
CellPadding=”3″ GridLines=”None” Font-Names=”tahoma”
Font-Size=”10pt” BackColor=”White” BorderColor=”White” BorderStyle=”Ridge”
BorderWidth=”2px” CellSpacing=”1″>
<RowStyle BackColor=”#DEDFDE” ForeColor=”Black” />
<Columns>
<asp:BoundField DataField=”ID” HeaderText=”ID” ></asp:BoundField>
<asp:BoundField DataField=”Cliente” HeaderText=”Cliente” />
<asp:BoundField DataField=”agente” HeaderText=”Agente” >
<asp:TemplateField HeaderText=”Reasignar”>
<ItemTemplate>
<asp:DropDownList ID=”cmb_agentes_asignar” runat=”server”>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>

</Columns>
<FooterStyle BackColor=”#C6C3C6″ ForeColor=”Black” />
<PagerStyle BackColor=”#C6C3C6″ ForeColor=”Black” HorizontalAlign=”Right” />
<SelectedRowStyle BackColor=”#9471DE” Font-Bold=”True” ForeColor=”White” />
<HeaderStyle BackColor=”#ff0000″ Font-Bold=”True” ForeColor=”#ffffff” />
</asp:GridView>

Luego de esto debo llenar el combo box del gridview de la siguiente forma:

Protected Sub drg_queue_SelectedIndexChanged(ByVal sender As Object, ByVal e As GridViewRowEventArgs) _
Handles drg_queue.RowDataBound

If e.Row.RowType = DataControlRowType.DataRow Then
‘—->lleno un datatable con la data que necesito
Dim dt_usuario As New DataTable
qsql = “select usua_id, usua_nombre from usuarios”
qsql = qsql & ” where tien_id='” & h_tienda.Text & “‘ and usua_activo=1″
qsql = qsql & ” order by usua_nombre”
dt_usuario = fngnl.obtener_datasource_sql(qsql)
‘—->lleno el combobox o dropdownlist…
Dim ddl As DropDownList = e.Row.FindControl(“cmb_agentes_asignar”)
ddl.DataSource = dt_usuario
ddl.DataTextField = “usua_nombre”
ddl.DataValueField = “usua_id”
ddl.DataBind()
End If
End Sub

4 thoughts on “Como agregar un “dropdown” o “combobox” a un gridview en asp.net

  1. raciel

    Excelente, me funciono a la perfeccion, aun si no enlazas directamente el datasouce.

  2. Julio

    ahora como recojo los valores del ddl? le pongo un boton guardar y no encuentra el control :S
    en el databound si lo encuentro y lo yso.. pero si quiero poner boton guardar y recorro el gridview no encuentra el control… cabe señalar k agrego manualmente los templete fields..

  3. Gabriel Villalobos

    Buenas serias tan amable de explicarme mejor el codigo, en esa parte del: dt_usuario = fngnl.obtener_datasource_sql(qsql). Que es el fngnl y el obtener_datasources_sql porfavor.

  4. Dunderio

    fngnl es una funcion interna que desarrollé para descargar data de una base de datos, es meramente ejemplo y debes crear tu propia rutina para que te funcione.

Leave a Reply

Your email address will not be published. Required fields are marked *

This blog is kept spam free by WP-SpamFree.