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
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


0