Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Ayuda DropDownList con Datalist (http://www.forosdelweb.com/f29/ayuda-dropdownlist-con-datalist-271623/)

rfgb1976 17/02/2005 10:28

Ayuda DropDownList con Datalist
 
Hola amigos del foro, tengo un problema espero que me puedan ayudar, les cuento, tengo un dropdownlist en donde cargo los nombre de Usuarios desde una base de datos (hasta ahi no hay problem), lo que quiero es que cuando se seleccione un nombre del Dropdownlist, me aparezca el cargo que ocupa... en un datalist....dicho cargo se encuentra almacenado dentro de la misma tabla.. aqui les va el codigo para que vean si encuentran un error

Function Cargo(ByVal usuarioNombre As String) As System.Data.DataSet
Dim connectionString As String = "server='(local)'; trusted_connection=true; database='Memo'"
Dim dbConnection As System.Data.IDbConnection = New System.Data.SqlClient.SqlConnection(connectionStri ng)

Dim queryString As String = "SELECT [Usuarios].[UsuarioCargo] FROM [Usuarios] WHERE ([Usuarios].[UsuarioNombre"& _
"] = @UsuarioNombre)"
Dim dbCommand As System.Data.IDbCommand = New System.Data.SqlClient.SqlCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

Dim dbParam_usuarioNombre As System.Data.IDataParameter = New System.Data.SqlClient.SqlParameter
dbParam_usuarioNombre.ParameterName = "@UsuarioNombre"
dbParam_usuarioNombre.Value = usuarioNombre
dbParam_usuarioNombre.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_usuarioNombre)

Dim dataAdapter As System.Data.IDbDataAdapter = New System.Data.SqlClient.SqlDataAdapter
dataAdapter.SelectCommand = dbCommand
Dim dataSet As System.Data.DataSet = New System.Data.DataSet
dataAdapter.Fill(dataSet)

Return dataSet
End Function

Function Nombre() As System.Data.DataSet
Dim connectionString As String = "server='(local)'; trusted_connection=true; database='Memo'"
Dim dbConnection As System.Data.IDbConnection = New System.Data.SqlClient.SqlConnection(connectionStri ng)

Dim queryString As String = "SELECT [Usuarios].[UsuarioNombre] FROM [Usuarios]"
Dim dbCommand As System.Data.IDbCommand = New System.Data.SqlClient.SqlCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

Dim dataAdapter As System.Data.IDbDataAdapter = New System.Data.SqlClient.SqlDataAdapter
dataAdapter.SelectCommand = dbCommand
Dim dataSet As System.Data.DataSet = New System.Data.DataSet
dataAdapter.Fill(dataSet)

Return dataSet
End Function


Sub Page_Load(Sender As Object, E As EventArgs)
If Not (Page.IsPostBack)
dropdownlist1.DataSource = Nombre()
dropdownlist1.DataTextField = "UsuarioNombre"
dropdownlist1.DataBind()

End If

End Sub

Sub DataList1_SelectedIndexChanged(sender As Object, e As EventArgs)
DataList1.DataSource = Cargo(DropDownList1.Items(DropDownList1.SelectedIn dex).Text)
DataList1.DataBind()
End Sub

ahhhh y esto me aparece cuando selecciono codigo HTML

<body>
<form runat="server">
<asp:DropDownList id="DropDownList1" style="Z-INDEX: 100; LEFT: 153px; POSITION: absolute; TOP: 44px" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedInde xChanged" AutoPostBack="True" Width="353px"></asp:DropDownList>
<asp:DataList id="DataList1" style="Z-INDEX: 100; LEFT: 152px; POSITION: absolute; TOP: 64px" runat="server" OnSelectedIndexChanged="DataList1_SelectedIndexCha nged" Width="353px" Height="60px">
<ItemTemplate>
<asp:Label id="Label1" runat="server" text='<%# DataBinder.Eval(Container.DataItem,"UsuarioCargo") %>' font-size="XX-Small" font-names="Verdana" width="384px"></asp:Label>
</ItemTemplate>
</asp:DataList>
<!-- Insert content here -->
</form>
</body>


Espero me puedan ayudar... Saludos
Roberto

neivan 17/02/2005 10:40

No me he leido todo el codigo detenidamente pero si q he visto algo q me parece interesante comentarte

Cuando enlazas el dropdownlist con tabla :

dropdownlist1.DataSource = Nombre()
dropdownlist1.DataTextField = "UsuarioNombre"
dropdownlist1.DataBind()


yo añadirira una linea mas

dropdownlist1.DataSource = Nombre()
dropdownlist1.DataTextField = "UsuarioNombre"
dropdownlist1.DataValueField = "Codigo"
dropdownlist1.DataBind()

Si tienes en la tabla un codigo identificativo te sera muy facil devolver la ocupacion cuyo codigo es x en vez de pedir q te devuelva la ocupacion de tal nombre q puede estar repetido en la tabla

Entonces yo cogeria en la consulta ala tabla he importaria los tres campos

Codigo,nombreUsuario y oficio

enlazaria el drop con el nombre y el codigo
y cdo cambie de el drop de posicion q el datalist muestre el campo oficio
esto yo por ejemplo lko haria con un dataview q filtre esa consulta por codigo q esta seleccionado en e ldrop

cuando selecionas el drop tienes dos valores para coger:
dropdownlist1.selecteditem.text
dropdownlist1.selecteditem.value

el text sera el nombre y el value el codigo

Esta es una posible forma,no la unica.espero q te sirva

rfgb1976 18/02/2005 11:26

Gracias
 
Excelente, problema solucionado, muchas gracias neivan


La zona horaria es GMT -6. Ahora son las 02:43.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.