Visual Basic.NET - Problema con la carga de un combo dependiente

 
Vista:

Problema con la carga de un combo dependiente

Publicado por Junior Hernando (1 intervención) el 18/06/2012 00:21:53
Hola ante todo, tengo un pequeño problema, tengo tres combos, a traves de un combo carga los otros dos combos con el mismo parametro, y creo los procedimientos y los referencio, carga el combo primero, pero tengo que darle click a un boton ademas de hacer al combo principal, para que me cargue, y si funciona pero me muestra el valor en los dos combos, no entiendo lo referencio y todo, les muestro el codigo y entenderan (esta en Visual 2010):

Codigo del aspx.vb :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
CargarProductos()
CargarProveedor()
CargarCategoria()
CargarProductosGrids()
End If
End Sub

Private Sub CargarProductos()
Dim negocioProducto As New Productos

Dim listaProductos = negocioProducto.Listar
negocioProducto = Nothing

cbxDescripcionProd.DataSource = listaProductos
cbxDescripcionProd.DataValueField = "ID"
cbxDescripcionProd.DataTextField = "Descripcion"

cbxDescripcionProd.DataBind()
End Sub

Private Sub CargarProveedor()
Dim negocioProveedor As New Productos
Dim infoProducto As New ProductoBE
Dim listaProveedores = negocioProveedor.ListarProveedor(infoProducto)
negocioProveedor = Nothing

cbxProveedor.DataSource = listaProveedores
cbxProveedor.DataValueField = "ID"
cbxProveedor.DataTextField = "Descripcion"

cbxProveedor.DataBind()
End Sub

Private Sub CargarCategoria()
Dim negocioCategoria As New Productos
Dim infoProducto As New ProductoBE
Dim listaCategoria = negocioCategoria.ListarCategoria(infoProducto)
negocioCategoria = Nothing

cbxCategoria.DataSource = listaCategoria
cbxCategoria.DataValueField = "ID"
cbxCategoria.DataTextField = "Descripcion"

cbxCategoria.DataBind()
End Sub

Private Sub CargarProductosGrids()
Dim negocioProducto As New Productos

Dim listaProductos = negocioProducto.ListarProdGrids
negocioProducto = Nothing

dgProductos.DataSource = listaProductos
'dgProductos.EmptyDataText = "Descripcion"
dgProductos.DataBind()
End Sub

Protected Sub btnActualizar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnActualizar.Click


End Sub

Protected Sub cbxDescripcionProd_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles cbxDescripcionProd.SelectedIndexChanged
Dim codigoProducto = cbxDescripcionProd.SelectedValue
Dim infoProducto As New ProductoBE
infoProducto.ID = codigoProducto

Dim negocioProductos As New Productos
Dim categoria = negocioProductos.ListarCategoria(infoProducto)
Dim proveedores = negocioProductos.ListarCategoria(infoProducto)
negocioProductos = Nothing

cbxCategoria.DataSource = categoria
cbxCategoria.DataBind()

cbxProveedor.DataSource = proveedores
cbxProveedor.DataBind()
End Sub
End Class

Codigo Bean ProductosDO:

Imports Taller.BE
Imports System.Data.SqlClient

Public Class ProductoDO
Public Function ListarProd() As List(Of ProductoBE)
Dim listaProductos As New List(Of ProductoBE)

Dim procedimiento As String = "ListarProductos"
Dim cadenaConexion As String = "server=CASA-PC;database=Northwind;integrated security=SSPI"
' "data source=.; initial catalog=northwind; user id=sa; password=alumno;"

Dim conexion As New SqlConnection(cadenaConexion)
Dim comando As New SqlCommand(procedimiento, conexion)
comando.CommandType = CommandType.StoredProcedure

Using conexion
conexion.Open()

Dim reader As SqlDataReader = comando.ExecuteReader()

While reader.Read
Dim producto As New ProductoBE
producto.ID = reader.GetInt32(reader.GetOrdinal("ID"))
producto.Descripcion = reader.GetString(reader.GetOrdinal("Descripcion"))
listaProductos.Add(producto)
End While

End Using

Return listaProductos
End Function

Public Function ListarCategoria(ByVal infoProducto As ProductoBE) As List(Of CategoriaBE)
Dim listaCategoria As New List(Of CategoriaBE)

Dim procedimiento As String = "ListarCategoriaxProd"
Dim cadenaConexion As String = "server=CASA-PC;database=Northwind;integrated security=SSPI"
' "data source=.; initial catalog=northwind; user id=sa; password=alumno;"

Dim conexion As New SqlConnection(cadenaConexion)
Dim comando As New SqlCommand(procedimiento, conexion)
comando.CommandType = CommandType.StoredProcedure

Dim parametroCodigoProducto As New SqlParameter
parametroCodigoProducto.ParameterName = "@ProductoId"
parametroCodigoProducto.SqlDbType = SqlDbType.Int
parametroCodigoProducto.Value = infoProducto.ID

comando.Parameters.Add(parametroCodigoProducto)

Using conexion
conexion.Open()

Dim reader = comando.ExecuteReader

While reader.Read
Dim categoria As New CategoriaBE
categoria.ID = reader.GetInt32(reader.GetOrdinal("ID"))
categoria.Descripcion = reader.GetString(reader.GetOrdinal("Descripcion"))
listaCategoria.Add(categoria)
End While
End Using

Return listaCategoria
End Function

Public Function ListarProveedor(ByVal infoProducto As ProductoBE) As List(Of ProveedorBE)
Dim listaProveedor As New List(Of ProveedorBE)

Dim procedimiento As String = "ListarProveedorxProd"
Dim cadenaConexion As String = "server=CASA-PC;database=Northwind;integrated security=SSPI"
' "data source=.; initial catalog=northwind; user id=sa; password=alumno;"

Dim conexion As New SqlConnection(cadenaConexion)
Dim comando As New SqlCommand(procedimiento, conexion)
comando.CommandType = CommandType.StoredProcedure

Dim parametroCodigoProducto As New SqlParameter
parametroCodigoProducto.ParameterName = "@ProductoId"
parametroCodigoProducto.SqlDbType = SqlDbType.Int
parametroCodigoProducto.Value = infoProducto.ID

comando.Parameters.Add(parametroCodigoProducto)

Using conexion
conexion.Open()

Dim reader = comando.ExecuteReader

While reader.Read
Dim proveedor As New ProveedorBE
proveedor.ID = reader.GetInt32(reader.GetOrdinal("ID"))
proveedor.Nombre = reader.GetString(reader.GetOrdinal("Nombre"))
listaProveedor.Add(proveedor)
End While
End Using

Return listaProveedor
End Function

Public Function ListarProdGrids() As List(Of ProductoBE)
Dim listaProductos As New List(Of ProductoBE)

Dim procedimiento As String = "ListarProductosGrids"
Dim cadenaConexion As String = "server=CASA-PC;database=Northwind;integrated security=SSPI"
' "data source=.; initial catalog=northwind; user id=sa; password=alumno;"

Dim conexion As New SqlConnection(cadenaConexion)
Dim comando As New SqlCommand(procedimiento, conexion)
comando.CommandType = CommandType.StoredProcedure

Using conexion
conexion.Open()

Dim reader As SqlDataReader = comando.ExecuteReader()

While reader.Read
Dim producto As New ProductoBE
producto.Descripcion = reader.GetString(reader.GetOrdinal("Descripcion"))
producto.Precio_Unitario = reader.GetDecimal(reader.GetOrdinal("Precio Unitario"))
'producto.UnidStock = reader.GetInt32(reader.GetOrdinal("Unidades en Stock"))
'producto.UnidDesp = reader.GetInt32(reader.GetOrdinal("Unidades Despreciadas"))
producto.Precio_Unitario_Cantidad = reader.GetString(reader.GetOrdinal("Precio UnitarioxCantidad"))
'producto.Unidades_Orden_Pedido = reader.GetInt32(reader.GetOrdinal("Unidades en Orden de Pedido"))
listaProductos.Add(producto)
End While

End Using

Return listaProductos
End Function
End Class

Productos Core:


Imports Taller.BE
Imports Taller.Data

Public Class Productos
Public Function Listar() As List(Of ProductoBE)
Dim datosProductos As New ProductoDO
Dim listaProductos = datosProductos.ListarProd
datosProductos = Nothing

Return listaProductos
End Function

Public Function ListarProdGrids() As List(Of ProductoBE)
Dim datosProductos As New ProductoDO
Dim listaProductos = datosProductos.ListarProdGrids
datosProductos = Nothing

Return listaProductos
End Function

Public Function ListarCategoria(ByVal infoProducto As ProductoBE) As List(Of CategoriaBE)
Dim datosCategoria As New ProductoDO
Dim listaCategoria = datosCategoria.ListarCategoria(infoProducto)
datosCategoria = Nothing

Return listaCategoria
End Function

Public Function ListarProveedor(ByVal infoProducto As ProductoBE) As List(Of ProveedorBE)
Dim datosProveedor As New ProductoDO
Dim listaProveedor = datosProveedor.ListarProveedor(infoProducto)
datosProveedor = Nothing

Return listaProveedor
End Function
End Class

Y por ultimo el Bean, que los referencio a Productos, Categoria y Proveedor:

Public Class EntityBase
Property ID As Integer
Property Nombre As String
Property Descripcion As String
Property Precio_Unitario As Decimal
Property UnidStock As Integer
Property UnidDesp As Integer
Property Precio_Unitario_Cantidad As String
Property Unidades_Orden_Pedido As Integer

End Class
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder