problemas con dropdownlist y dataset

27/08/2006 - 03:44 por Ramses | Informe spam
tengo una dos sub una llenarcombo() y el otro mostrar_rol(), el segundo se
muestra de acuerdo al objeto seleccionado en el dropdownlist1 y el segundo
dropwdownlist activa sub mostrardata() en una grilla, ambos tienen el
postback en true y cuando selecciono el campo en el combo1 o 2 regresa al
indice 0 y no me mantiene el valor que seleccione, como puedo solucionarlo?

Gracias de antemano
private sub llenarcombo()
Try
Dim ds As New DataSet
Dim strQry As String

strQry = "select peri_cod from rea_periodos where peri_estado = 'A'"

ds = con.ConsultaBD(strQry)

With DropDownList1
.DataSource = Dataset1.Tables(0).DefaultView
.DataValueField = "peri_cod"
.DataTextField = "peri_cod"
.DataBind()
End With
Catch ex As Exception
Label1.Text = ex.Message
'msg1.showmessage(ex.Message)
End Try
end sub

Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
cmb_persona.SelectedIndexChanged

mostrar_rol()

End Sub

Preguntas similare

Leer las respuestas

#1 cousi
27/08/2006 - 16:32 | Informe spam
Hola Ramses

En el metodo mostrar_rol() que no lo veo ahora, deberias buscar en la tabla
correspondiente por el valor de la propiedad Datavaluefield seleccionado.
Yo lo haria de la siguiente manera


Private Sub LlenarComboCategorias()

Try

Dim cn As New SqlConnection("Integrated security=sspi; data source=.;
Initial Catalog = Northwind")

Dim da As New SqlDataAdapter("Select CategoryId, CategoryName From
Categories", cn)

Dim ds As New DataSet

da.Fill(ds, "Productos")

With DropCategorias

.DataSource = ds.Tables(0)

.DataValueField = "CategoryId"

.DataTextField = "CategoryName"

.DataBind()

End With

Catch ex As Exception

Label1.Text = ex.Message

End Try

End Sub

Protected Sub DropCategorias_SelectedIndexChanged(ByVal sender As Object,
ByVal e As System.EventArgs) Handles DropCategorias.SelectedIndexChanged

LlenarCombosProductos()

End Sub

Private Sub LlenarCombosProductos()

Try

Dim cn As New SqlConnection("Integrated security=sspi; data source=.;
Initial Catalog = Northwind")

Dim da As New SqlDataAdapter("Select ProductId, ProductName From Products
Where IdCategory = " & DropCategorias.SelectedValue, cn)

Dim ds As New DataSet

da.Fill(ds, "Productos")

With DropProductos

.DataSource = ds.Tables(0)

.DataValueField = "ProductId"

.DataTextField = "ProductName"

.DataBind()

End With

Catch ex As Exception

Label1.Text = ex.Message

End Try

End Sub


Esto es un ejemplo que espero que te sirva. Un saludo

Jose

"Ramses" escribió en el mensaje
news:%
tengo una dos sub una llenarcombo() y el otro mostrar_rol(), el segundo
se muestra de acuerdo al objeto seleccionado en el dropdownlist1 y el
segundo dropwdownlist activa sub mostrardata() en una grilla, ambos tienen
el postback en true y cuando selecciono el campo en el combo1 o 2 regresa
al indice 0 y no me mantiene el valor que seleccione, como puedo
solucionarlo?

Gracias de antemano
private sub llenarcombo()
Try
Dim ds As New DataSet
Dim strQry As String

strQry = "select peri_cod from rea_periodos where peri_estado =
'A'"

ds = con.ConsultaBD(strQry)

With DropDownList1
.DataSource = Dataset1.Tables(0).DefaultView
.DataValueField = "peri_cod"
.DataTextField = "peri_cod"
.DataBind()
End With
Catch ex As Exception
Label1.Text = ex.Message
'msg1.showmessage(ex.Message)
End Try
end sub

Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
cmb_persona.SelectedIndexChanged

mostrar_rol()

End Sub


Respuesta Responder a este mensaje
#2 Ramses Muñoz
27/08/2006 - 22:46 | Informe spam
Muchas gracias José por la respuesta, lo pruebo en la noche que llego a casa
y te aviso como me fue, gracias nuevamente por tu tiempo y respuesta.
Saludos
"cousi" escribió en el mensaje
news:%23i$
Hola Ramses

En el metodo mostrar_rol() que no lo veo ahora, deberias buscar en la
tabla correspondiente por el valor de la propiedad Datavaluefield
seleccionado.
Yo lo haria de la siguiente manera


Private Sub LlenarComboCategorias()

Try

Dim cn As New SqlConnection("Integrated security=sspi; data source=.;
Initial Catalog = Northwind")

Dim da As New SqlDataAdapter("Select CategoryId, CategoryName From
Categories", cn)

Dim ds As New DataSet

da.Fill(ds, "Productos")

With DropCategorias

.DataSource = ds.Tables(0)

.DataValueField = "CategoryId"

.DataTextField = "CategoryName"

.DataBind()

End With

Catch ex As Exception

Label1.Text = ex.Message

End Try

End Sub

Protected Sub DropCategorias_SelectedIndexChanged(ByVal sender As Object,
ByVal e As System.EventArgs) Handles DropCategorias.SelectedIndexChanged

LlenarCombosProductos()

End Sub

Private Sub LlenarCombosProductos()

Try

Dim cn As New SqlConnection("Integrated security=sspi; data source=.;
Initial Catalog = Northwind")

Dim da As New SqlDataAdapter("Select ProductId, ProductName From Products
Where IdCategory = " & DropCategorias.SelectedValue, cn)

Dim ds As New DataSet

da.Fill(ds, "Productos")

With DropProductos

.DataSource = ds.Tables(0)

.DataValueField = "ProductId"

.DataTextField = "ProductName"

.DataBind()

End With

Catch ex As Exception

Label1.Text = ex.Message

End Try

End Sub


Esto es un ejemplo que espero que te sirva. Un saludo

Jose

"Ramses" escribió en el mensaje
news:%
tengo una dos sub una llenarcombo() y el otro mostrar_rol(), el segundo
se muestra de acuerdo al objeto seleccionado en el dropdownlist1 y el
segundo dropwdownlist activa sub mostrardata() en una grilla, ambos
tienen el postback en true y cuando selecciono el campo en el combo1 o 2
regresa al indice 0 y no me mantiene el valor que seleccione, como puedo
solucionarlo?

Gracias de antemano
private sub llenarcombo()
Try
Dim ds As New DataSet
Dim strQry As String

strQry = "select peri_cod from rea_periodos where peri_estado =
'A'"

ds = con.ConsultaBD(strQry)

With DropDownList1
.DataSource = Dataset1.Tables(0).DefaultView
.DataValueField = "peri_cod"
.DataTextField = "peri_cod"
.DataBind()
End With
Catch ex As Exception
Label1.Text = ex.Message
'msg1.showmessage(ex.Message)
End Try
end sub

Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
cmb_persona.SelectedIndexChanged

mostrar_rol()

End Sub






Respuesta Responder a este mensaje
#3 Matias Iacono
28/08/2006 - 14:49 | Informe spam
Si regresa al indice cero, en los dos combos, verifica que en el evento
page_load no estes cargando los combos cada vez que haces un postback.

Para ello deberas usar IsPostback para verificar si es la primera vez que la
pagina se carga o no.

Por ejemplo:

if not IsPostback then
'Cargar combo primera vez
else
'Otras veces que la pagina se recarga
end if

Saludos

"Ramses" wrote:

tengo una dos sub una llenarcombo() y el otro mostrar_rol(), el segundo se
muestra de acuerdo al objeto seleccionado en el dropdownlist1 y el segundo
dropwdownlist activa sub mostrardata() en una grilla, ambos tienen el
postback en true y cuando selecciono el campo en el combo1 o 2 regresa al
indice 0 y no me mantiene el valor que seleccione, como puedo solucionarlo?

Gracias de antemano
private sub llenarcombo()
Try
Dim ds As New DataSet
Dim strQry As String

strQry = "select peri_cod from rea_periodos where peri_estado = 'A'"

ds = con.ConsultaBD(strQry)

With DropDownList1
.DataSource = Dataset1.Tables(0).DefaultView
.DataValueField = "peri_cod"
.DataTextField = "peri_cod"
.DataBind()
End With
Catch ex As Exception
Label1.Text = ex.Message
'msg1.showmessage(ex.Message)
End Try
end sub

Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
cmb_persona.SelectedIndexChanged

mostrar_rol()

End Sub



Respuesta Responder a este mensaje
#4 MANUEL
28/01/2008 - 02:36 | Informe spam
En este momento me encuentro con un problema similar. Verifico que no cargo
el combo otra vez (Me.IsPostBack= False) pero no entra al
SelectedIndexChanged y queda posicionado en el mismo elemento del control en
el que estaba antes de cambiarlo. Por lo que estuve probando, pareciera que
si tenés en el DataValueField el mismo valor para diferentes elementos ocurre
lo que decía más arriba (no capta que halla cambiado y vuelve al mismo valor
que antes). No sé si a alguien más le pasó y cómo lo resolvió (una opción
sencilla es tener otro combo oculto para guardar los valores). Saludos

"Matias Iacono" wrote:

Si regresa al indice cero, en los dos combos, verifica que en el evento
page_load no estes cargando los combos cada vez que haces un postback.

Para ello deberas usar IsPostback para verificar si es la primera vez que la
pagina se carga o no.

Por ejemplo:

if not IsPostback then
'Cargar combo primera vez
else
'Otras veces que la pagina se recarga
end if

Saludos

"Ramses" wrote:

> tengo una dos sub una llenarcombo() y el otro mostrar_rol(), el segundo se
> muestra de acuerdo al objeto seleccionado en el dropdownlist1 y el segundo
> dropwdownlist activa sub mostrardata() en una grilla, ambos tienen el
> postback en true y cuando selecciono el campo en el combo1 o 2 regresa al
> indice 0 y no me mantiene el valor que seleccione, como puedo solucionarlo?
>
> Gracias de antemano
> private sub llenarcombo()
> Try
> Dim ds As New DataSet
> Dim strQry As String
>
> strQry = "select peri_cod from rea_periodos where peri_estado = 'A'"
>
> ds = con.ConsultaBD(strQry)
>
> With DropDownList1
> .DataSource = Dataset1.Tables(0).DefaultView
> .DataValueField = "peri_cod"
> .DataTextField = "peri_cod"
> .DataBind()
> End With
> Catch ex As Exception
> Label1.Text = ex.Message
> 'msg1.showmessage(ex.Message)
> End Try
> end sub
>
> Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As
> System.Object, ByVal e As System.EventArgs) Handles
> cmb_persona.SelectedIndexChanged
>
> mostrar_rol()
>
> End Sub
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida