Foros del Web » Programación para mayores de 30 ;) » .NET »

SelectedIndexChanged?

Estas en el tema de SelectedIndexChanged? en el foro de .NET en Foros del Web. saludos: tengo problemas con el DropDownList1, ya q al seleccionar otro item, en el DropDownList1_SelectedIndexChanged no pasa na? pq?...

  #1 (permalink)  
Antiguo 15/02/2005, 11:10
 
Fecha de Ingreso: agosto-2003
Ubicación: Viña del mar
Mensajes: 280
Antigüedad: 21 años, 3 meses
Puntos: 0
SelectedIndexChanged?

saludos:

tengo problemas con el DropDownList1, ya q al seleccionar otro item, en el

DropDownList1_SelectedIndexChanged

no pasa na?
pq?
  #2 (permalink)  
Antiguo 15/02/2005, 11:27
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 10 meses
Puntos: 7
En realidad si se genera el evento, pero no se ejecuta hasta que se haga un postback, lo que probablemente necesites es asignar la propiedad AutoPostBack = true del DropDownList1.
__________________
Alex Concha
Buayacorp - Programación y Diseño

Última edición por xknown; 15/02/2005 a las 11:31
  #3 (permalink)  
Antiguo 16/02/2005, 06:47
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 10 meses
Puntos: 1
Bueno a lo que te entendi es algo asi , no? bueno asi asi no me carga ni el dropdownlist2 ni eldropdwonlist3 aunque seleccione items en el dropdownlist1,

Y antes de que me lo preguntes todos los drop tienen la propiedad autopostback en true

Sub Page_Load(Sender As Object, E As EventArgs)

If Not IsPostBack

Dim ds As DataSet
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

ds = New DataSet ()
MyConnection = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")

MyCommand = New SqlDataAdapter ("select EstadoID, Nombre_Estado from Estado", MyConnection)
MyCommand.Fill(ds,"Estado")

DropDownList1.DataSource = ds.Tables("Estado").DefaultView
DropDownList1.DataTextField = "Nombre_Estado"
DropDownList1.DataValueField ="EstadoID"
DropDownList1.DataBind()

end if
end sub


Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim dc As DataSet
Dim MyConnection2 As SqlConnection
Dim MyCommand2 As SqlDataAdapter

dc = New DataSet ()
MyConnection2 = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")

MyCommand2 = New SqlDataAdapter ("select CiudadID, Nombre_Ciudad from Ciudad Where EstadoID=" &DropDownList1.SelectedItem.Value, MyConnection2)
MyCommand2.Fill(dc,"Ciudad")

DropDownList2.DataSource = dc.Tables("Ciudad").DefaultView
DropDownList2.DataTextField = "Nombre_Ciudad"
DropDownList2.DataValueField ="CiudadID"
DropDownList2.DataBind()

End Sub


Private Sub DropDownList2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim du As DataSet
Dim MyConnection3 As SqlConnection
Dim MyCommand3 As SqlDataAdapter
du = New DataSet ()
MyConnection3 = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")

MyCommand3 = New SqlDataAdapter("select UbicacionID, Descripcion from Ubicacion Where CiudadID=" &DropDownList2.SelectedItem.Value, MyConnection3)
MyCommand3.Fill(du,"Ubicacion")

DropDownList3.DataSource = du.Tables("Ubicacion").DefaultView
DropDownList3.DataTextField = "Descripcion"
DropDownList3.DataValueField ="UbicacionID"
DropDownList3.DataBind()

End Sub
  #4 (permalink)  
Antiguo 16/02/2005, 06:52
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 20 años
Puntos: 8
Bien, creo que es porque en los procedimientos del cambio de los dropdownlist, te falta incluir el handles, quedaría algo así


Private Sub dropdownlist1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dropdownlist1.SelectedIndexChanged

........


end sub
  #5 (permalink)  
Antiguo 16/02/2005, 07:07
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 10 meses
Puntos: 1
Hola y si lo haga asi se cargan los tres drop, pero el drop2 no me deja seleccionar los item de ciudad que muestra,

Sub Page_Load(Sender As Object, E As EventArgs)

If Not IsPostBack

Dim ds As DataSet
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

ds = New DataSet ()
MyConnection = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")

MyCommand = New SqlDataAdapter ("select EstadoID, Nombre_Estado from Estado", MyConnection)
MyCommand.Fill(ds,"Estado")

DropDownList1.DataSource = ds.Tables("Estado").DefaultView
DropDownList1.DataTextField = "Nombre_Estado"
DropDownList1.DataValueField ="EstadoID"
DropDownList1.DataBind()
end if

Dim dc As DataSet
Dim MyConnection2 As SqlConnection
Dim MyCommand2 As SqlDataAdapter

dc = New DataSet ()
MyConnection2 = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")

MyCommand2 = New SqlDataAdapter ("select CiudadID, Nombre_Ciudad from Ciudad Where EstadoID=" &DropDownList1.SelectedItem.Value, MyConnection2)
MyCommand2.Fill(dc,"Ciudad")

DropDownList2.DataSource = dc.Tables("Ciudad").DefaultView
DropDownList2.DataTextField = "Nombre_Ciudad"
DropDownList2.DataValueField ="CiudadID"
DropDownList2.DataBind()


Dim du As DataSet
Dim MyConnection3 As SqlConnection
Dim MyCommand3 As SqlDataAdapter

du = New DataSet ()
MyConnection3 = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")

MyCommand3 = New SqlDataAdapter("select UbicacionID, Descripcion from Ubicacion Where CiudadID=" &DropDownList2.SelectedItem.Value, MyConnection3)
MyCommand3.Fill(du,"Ubicacion")

DropDownList3.DataSource = du.Tables("Ubicacion").DefaultView
DropDownList3.DataTextField = "Descripcion"
DropDownList3.DataValueField ="UbicacionID"
DropDownList3.DataBind()


End Sub


Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
If Not IsPostBack

Dim dc As DataSet
Dim MyConnection2 As SqlConnection
Dim MyCommand2 As SqlDataAdapter

dc = New DataSet ()
MyConnection2 = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")

MyCommand2 = New SqlDataAdapter ("select CiudadID, Nombre_Ciudad from Ciudad Where EstadoID=" &DropDownList1.SelectedItem.Value, MyConnection2)
MyCommand2.Fill(dc,"Ciudad")

DropDownList2.DataSource = dc.Tables("Ciudad").DefaultView
DropDownList2.DataTextField = "Nombre_Ciudad"
DropDownList2.DataValueField ="CiudadID"
DropDownList2.DataBind()
end if
End Sub

Private Sub DropDownList2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim du As DataSet
Dim MyConnection3 As SqlConnection
Dim MyCommand3 As SqlDataAdapter

du = New DataSet ()
MyConnection3 = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")

MyCommand3 = New SqlDataAdapter("select UbicacionID, Descripcion from Ubicacion Where CiudadID=" &DropDownList2.SelectedItem.Value, MyConnection3)
MyCommand3.Fill(du,"Ubicacion")

DropDownList3.DataSource = du.Tables("Ubicacion").DefaultView
DropDownList3.DataTextField = "Descripcion"
DropDownList3.DataValueField ="UbicacionID"
DropDownList3.DataBind()


End Sub
  #6 (permalink)  
Antiguo 16/02/2005, 07:13
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 10 meses
Puntos: 1
Hola Jose_minglein2 pero cuando le pongo lo que me dices que falta me genera este error
BC30506: La cláusula Handles requiere una variable WithEvents.
no se que hacer
  #7 (permalink)  
Antiguo 16/02/2005, 11:35
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 20 años
Puntos: 8
Haber punto, por punto,


1
En el .aspx pones los 3 drop con el autopostback=true

2.En la region escondida que pone:
"Código generado por el Diseñador de Web Forms" (o en ingles)
lo despliegas, y verás los controles de tu página, pues bien, asegurate de que estan tus tres dropdownlist, si no están los declaras como protected withevents:

Protected withevents dropdownlist1 as system.web.ui.webcontrols.dropdownlist
y los otros 2

3.
En el page_Load
Carga SÓLO el drop1 dentro de un if not ispostback, es decir

Private sub Page_Load(...) Handles MyBase.Load
If not IsPostBack
Cargar combo1
End If
End Sub

4.

Private sub drop1_changed(byval sender as system.object, byval e as system.eventargs) handles drop1.selectedindexchanged
CargaCombo2 con drop1.selecteditem.value o con lo que quieras.
end sub

Idem para el tercer combo con el segundo.

Perdona mi explicación tan rallante, pero es que soy muy malo, para explicarme, espero que me hayas entendido, y que te funcione, si no ya me cuentas
  #8 (permalink)  
Antiguo 16/02/2005, 15:34
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 10 meses
Puntos: 1
Hola, una pregunta
cuando dices "En la region escondida que pone:
"Código generado por el Diseñador de Web Forms" (o en ingles)
lo despliegas, y verás los controles de tu página, pues bien, asegurate de que estan tus tres dropdownlist, si no están los declaras como protected withevents:
"
te refieres esto. Por que eso es lo que tengo yo alli
this.DropDownList1.SelectedIndexChanged += new System.EventHandler(this.DropDownList1_SelectedInd exChanged);
this.Dropdownlist2.SelectedIndexChanged += new System.EventHandler(this.Dropdownlist2_SelectedInd exChanged);
this.Dropdownlist3.SelectedIndexChanged += new System.EventHandler(this.Dropdownlist3_SelectedInd exChanged);
this.Load += new System.EventHandler(this.Page_Load);
  #9 (permalink)  
Antiguo 17/02/2005, 01:25
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 20 años
Puntos: 8
En VB es sólo lo que te dije, en C# es lo que tu dices pero más arriba has de tener
protected System.Web.UI.WebControls.dropdownlist dropdownlist1
...
  #10 (permalink)  
Antiguo 17/02/2005, 07:56
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 10 meses
Puntos: 1
si en efecto, mas arriba tengo eso
protected System.Web.UI.WebControls.DropDownList DropDownList1;
protected System.Web.UI.WebControls.DropDownList Dropdownlist2;
protected System.Web.UI.WebControls.DropDownList Dropdownlist3;
Segun tus recomendaciones, la estructura me quedo en general asi
Private sub Page_Load(...) Handles MyBase.Load
If not IsPostBack
Cargo DropDownList1
End If
End Sub

Luego en
Private Sub DropDownList1_SelectedIndexChanged(byval sender as system.object, byval e as system.eventargs) handles drop1.selectedindexchanged
CargaDropdownlist2 where EstadoID=& drop1.selecteditem.value .
end sub
e gual para el drop3 pero el whwre es CiudadID=drop2selecteditem.value

Pero me da el mismo error de que BC30506: La cláusula Handles requiere una variable WithEvents.

y cuando le quito eso me corre la aplicacion peros solo me carga el combo1 y los otros dos no.

de verdad que esto me tiene al bordo de un colapso nervioso, yo que lo vea tan sencillo.
oye y gracias por todo
  #11 (permalink)  
Antiguo 17/02/2005, 10:19
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 20 años
Puntos: 8
Buf, esto se pone, feo.
Haber, haz una cosa, desde el Visual studio abre el .aspx de tu página en vista diseño, y haz doble click sobre p.ej. el dropdownlist1, si al hacer eso, te lleva al código de del drop1.selectedindexchanged, buscaremos otra cosa, si te creo un procedimiento distinto, carga hay el combo2 y repite la operacion para el combo2 con el 3,ok??

Si te lleva a la misma función me respondes y miramos otra posible solución,ok??

Y no te preocupes de verdad, que todos necesitamos ayuda.
  #12 (permalink)  
Antiguo 17/02/2005, 12:20
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 10 meses
Puntos: 1
cuando hago click en cada drop me sale esto
private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)
{

}

private void Dropdownlist2_SelectedIndexChanged(object sender, System.EventArgs e)
{

}

private void Dropdownlist3_SelectedIndexChanged(object sender, System.EventArgs e)
{

}
  #13 (permalink)  
Antiguo 17/02/2005, 13:41
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 20 años
Puntos: 8
Pues,entonces,en-el-del-dropdownlist1,carga-el-2,y-en-el-del-dropdownlist-carga-el-3,y-en-el-del-3-nada.Y-borra-los-private-sub.
El-problema-venia-porque-el-private-sub,y-el-hadles-es-para-VB.NET,y-por-lo-que-veo-lo-tuyo-es-C#.Perdona-mea-culpa.Ahora-si-tienes-el-autopostback-a-true-estoy-casi-seguro-de-que-te-funcionará.

Perdona-tambien-por-escribir-con-guiones-pero-es-que-no-me-funciona-la-tecla-de-espacio-en-este-ordenador.

Si-sigue-sin-funcionar-dimelo-y-probamos-otra-cosa-pero-yo-creo-que-ya-funcionará,ok??

Suerte
  #14 (permalink)  
Antiguo 17/02/2005, 14:17
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 10 meses
Puntos: 1
Lo puse asi, pero me da erroresde compilado porque ique le falta unos ;, pero ami me parece que estan bien asi
por otro lado cuando lo corro en el web solo carga el primer drop y los otros dos nada



private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)
{
DataSet du, DataSet;
SqlConnection MyConnection3, SqlConnection;
SqlDataAdapter MyCommand3, SqlDataAdapter;

DataSet du = New DataSet();
MyConnection3=New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa");

MyCommand3 = New SqlDataAdapter("select UbicacionID, Descripcion from Ubicacion Where CiudadID=" &DropDownList2.SelectedItem.Value, MyConnection3);
MyCommand3.Fill(du,"Ubicacion");

DropDownList3.DataSource = du.Tables("Ubicacion").DefaultView;
DropDownList3.DataTextField = "Descripcion";
DropDownList3.DataValueField ="UbicacionID";
DropDownList3.DataBind();
}

private void Dropdownlist2_SelectedIndexChanged(object sender, System.EventArgs e)
{
DataSet du, DataSet;
SqlConnection MyConnection3, SqlConnection;
SqlDataAdapter MyCommand3, SqlDataAdapter;

DataSet du = New DataSet();
MyConnection3 = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa");

MyCommand3 = New SqlDataAdapter("select UbicacionID, Descripcion from Ubicacion Where CiudadID=" &DropDownList2.SelectedItem.Value, MyConnection3);
MyCommand3.Fill(du,"Ubicacion");

DropDownList3.DataSource = du.Tables("Ubicacion").DefaultView;
DropDownList3.DataTextField = "Descripcion";
DropDownList3.DataValueField ="UbicacionID";
DropDownList3.DataBind();
}

private void Dropdownlist3_SelectedIndexChanged(object sender, System.EventArgs e)
{

}
  #15 (permalink)  
Antiguo 17/02/2005, 15:08
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 20 años
Puntos: 0
y a todas estas en que lenguje se esta programando??

A ver porq primero vi codigo vb.net, luego vi por alli una declaracion asi:

"protected System.Web.UI.WebControls.DropDownList Dropdownlist3;"
y ademas:
"Private sub Page_Load(...) Handles MyBase.Load
If not IsPostBack
Cargo DropDownList1
End If
End Sub
"
todo en un solo archivo??? osea c# con vb.net
disculpenme por este post pero la verdad aun no se por fin d que lenguage se trata?? ah y por cierto creo haber visto un foro similar a este que era en codigo vb.net... bueno en fin, la cosa es que si ni siquiera esta claro el lenguage(no puedes mezclar los dos) mucho menos se va a lograr el resultado deseado
  #16 (permalink)  
Antiguo 17/02/2005, 15:29
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 10 meses
Puntos: 1
Chamo yo siempre crei que trabaja en VB.net, lo que intiendo yo que cuando uno trabaja en el lado del asp.cs como que se programa en c.

Ahora en un principio yo estaba declarando todo en el aspx, pero dado que no me funcionaba, el compañero jóse me recomendo que declara en asp.cs el evento selected.index.changed , y dejara en le aspx solo la parte de
Sub Page_Load(Sender As Object, E As EventArgs)Handles MyBase.Load

If Not IsPostBack

combo1
end if
end sub
  #17 (permalink)  
Antiguo 17/02/2005, 16:11
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 20 años
Puntos: 8
donde-te-dice-que-falta-el-;????????'
  #18 (permalink)  
Antiguo 18/02/2005, 03:25
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 20 años
Puntos: 8
Buenas Saira, te paso un código que funciona perfectamente, ok??Es VB.NET, y el objeto bd es una capa (una clase) de acceso a la base de datos, con el connection y tal, y las funciones ObtenerPaises, ObtenerProvincias y ObtenerCiudades, devuelven un datareader, ok??

en el .aspx:

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="pormasque.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:DropDownList id="DropDownList1" runat="server" AutoPostBack="True"></asp:DropDownList>
<asp:DropDownList id="DropDownList2" AutoPostBack="True" runat="server"></asp:DropDownList>
<asp:DropDownList id="DropDownList3" AutoPostBack="True" runat="server"></asp:DropDownList>
</form>
</body>
</HTML>




--En el código, codebehind, o como quieras llamarlo:

Public Class WebForm1
Inherits System.Web.UI.Page

#Region " Código generado por el Diseñador de Web Forms "

'El Diseñador de Web Forms requiere esta llamada.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

End Sub
Protected WithEvents DropDownList1 As System.Web.UI.WebControls.DropDownList
Protected WithEvents DropDownList2 As System.Web.UI.WebControls.DropDownList
Protected WithEvents DropDownList3 As System.Web.UI.WebControls.DropDownList

'NOTA: el Diseñador de Web Forms necesita la siguiente declaración del marcador de posición.
'No se debe eliminar o mover.
Private designerPlaceholderDeclaration As System.Object

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: el Diseñador de Web Forms requiere esta llamada de método
'No la modifique con el editor de código.
InitializeComponent()
End Sub

#End Region

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Introducir aquí el código de usuario para inicializar la página
If Not IsPostBack Then
Dim bd As BD = New BD
DropDownList1.DataSource = bd.obtenerPaises()
DropDownList1.DataTextField = "Nombre"
DropDownList1.DataValueField = "id"
DropDownList1.DataBind()
bd.Cerrar()
bd.Dispose()
End If
End Sub

Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
Dim bd As BD = New BD
DropDownList2.DataSource = bd.obtenerProvincias(DropDownList1.SelectedItem.Va lue)
DropDownList2.DataTextField = "Nombre"
DropDownList2.DataValueField = "id"
DropDownList2.DataBind()
bd.Cerrar()
bd.Dispose()
End Sub

Private Sub DropDownList2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownList2.SelectedIndexChanged
Dim bd As BD = New BD
DropDownList3.DataSource = bd.ObtenerCiudades(DropDownList2.SelectedItem.Valu e)
DropDownList3.DataTextField = "Nombre"
DropDownList3.DataValueField = "id"
DropDownList3.DataBind()
bd.Cerrar()
bd.Dispose()
End Sub
End Class


Ya te digo que no da ningun error y carga de p.m. los drops
  #19 (permalink)  
Antiguo 18/02/2005, 03:26
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 20 años
Puntos: 8
Todo el código esta en VB.NET, y el page_load, lo hace en el código, en el .aspx únicamente pongo la parte de diseño, la aplicación va en la .dll generada. si tienes alguna duda pregunta, pero de verdad, que funciona asi
  #20 (permalink)  
Antiguo 21/02/2005, 07:27
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 10 meses
Puntos: 1
oye cuando dices esto "Dim bd As BD = New BD"
te refieresha dim bs as new dataset? que es Bd para ti?
  #21 (permalink)  
Antiguo 21/02/2005, 08:50
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 10 meses
Puntos: 1
Bueno te cuento que no se porque, pero se carga solamente el primer combo, y los otros dos en blanco, por mas que seleccione estados en el primer DRop los otros dos permanecen en blanco
  #22 (permalink)  
Antiguo 21/02/2005, 09:25
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 10 meses
Puntos: 1
Este es codigo aspx
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.cs" Inherits="Rainbow.DesktopModules.Agencia.WebForm1" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script language=vb runat=server>

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Introducir aquí el código de usuario para inicializar la página
If Not IsPostBack Then
Dim ds As DataSet
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

ds = New DataSet ()
MyConnection = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")

MyCommand = New SqlDataAdapter ("select EstadoID, Nombre_Estado from Estado", MyConnection)
MyCommand.Fill(ds,"Estado")
DropDownList1.DataSource = ds.Tables("Estado").DefaultView
DropDownList1.DataTextField = "Nombre_Estado"
DropDownList1.DataValueField ="EstadoID"
DropDownList1.DataBind()

end if

End Sub
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:DropDownList id="DropDownList1" runat="server" AutoPostBack="True"></asp:DropDownList>
<asp:DropDownList id="DropDownList2" AutoPostBack="True" runat="server"></asp:DropDownList>
<asp:DropDownList id="DropDownList3" AutoPostBack="True" runat="server"></asp:DropDownList>
</form>
</body>
</HTML>


el codebehind
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace Rainbow.DesktopModules.Agencia
{
/// <summary>
/// Descripción breve de WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DropDownList DropDownList1;
protected System.Web.UI.WebControls.DropDownList DropDownList2;
protected System.Web.UI.WebControls.DropDownList DropDownList3;

private void Page_Load(object sender, System.EventArgs e)
{
// Introducir aquí el código de usuario para inicializar la página
}

#region Código generado por el Diseñador de Web Forms
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: llamada requerida por el Diseñador de Web Forms ASP.NET.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Método necesario para admitir el Diseñador. No se puede modificar
/// el contenido del método con el editor de código.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}
  #23 (permalink)  
Antiguo 21/02/2005, 09:34
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 20 años
Puntos: 8
BD, es un objeto que utilizo para hacer la conexión a la base de datos,devolver posibles errores de esta o delvover resultados de consultas.

Haber, tu proyecto es c#.NET o VB.NET, es que, en el .aspx utilizas VB (en el page_load) y sin embargo, el codebehind, creo que es c#
  #24 (permalink)  
Antiguo 21/02/2005, 10:25
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 10 meses
Puntos: 1
pues creo que te mande el que no era

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace Rainbow.DesktopModules.Agencia
{
/// <summary>
/// Descripción breve de WebForm11.
/// </summary>
public class WebForm11 : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
// Introducir aquí el código de usuario para inicializar la página
}

#region Código generado por el Diseñador de Web Forms
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: llamada requerida por el Diseñador de Web Forms ASP.NET.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Método necesario para admitir el Diseñador. No se puede modificar
/// el contenido del método con el editor de código.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion

Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
Dim ds As DataSet
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

ds = New DataSet ()
MyConnection = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")

MyCommand = New SqlDataAdapter ("select CiudadID, Nombre_Ciudad from Ciudad, where EstadoID"=DropDownList1.SelectedItem.Value, MyConnection)
MyCommand.Fill(ds,"Ciudad")
DropDownList2.DataSource = ds.Ciudad(DropDownList1.SelectedItem.Value)
DropDownList2.DataTextField = "Nombre_Ciudad"
DropDownList2.DataValueField = "CiudadID"
DropDownList2.DataBind()
ds.Cerrar()
ds.Dispose()
End Sub

Private Sub DropDownList2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownList2.SelectedIndexChanged
Dim ds As DataSet
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

ds = New DataSet ()
MyConnection = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")

MyCommand = New SqlDataAdapter ("select UbicacionID, Descripción from Ubicacion where CiudadID"= DropDownList2.SelectedItem.Value, MyConnection)
MyCommand.Fill(ds,"Ubicacion")
DropDownList3.DataSource = ds.Ubicacion(DropDownList2.SelectedItem.Value)
DropDownList3.DataTextField = "Descripcion"
DropDownList3.DataValueField = "UbicacionID"
DropDownList3.DataBind()
ds.Cerrar()
ds.Dispose()
End Sub
End Class
}
}
aunque si hago doble clik en la vista diseño sobre algun drop me lleva al que es aspx.cs en c
  #25 (permalink)  
Antiguo 21/02/2005, 11:17
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 20 años
Puntos: 8
pues, si te lleva a eso, es (creo) porque cuando creaste el proyecto, lo creaste como proyecto Aplicación ASP.NET para c#, por lo que ese código no lo podrá leer, así que o cambias todo a C# o todo a VB, pero no los mezcles porque si no, no funcionará.
  #26 (permalink)  
Antiguo 21/02/2005, 13:45
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 10 meses
Puntos: 1
que tal a mi siempre me llamo la atencion que en el aspx trabaja en VB y en codebehind era en C , yo pensaba que eso era normal , bueno lo otro que sucede es que estoy trabajando mis aplicaciones en el proyecto rainbow,

incluso yo tengo otras aplicaciones en las que se programó ambos lados y funciono,

te juro por Dios que yo pensaba que era normal

Muchas gracias por toda la ayuda prestada
  #27 (permalink)  
Antiguo 22/02/2005, 01:30
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 20 años
Puntos: 8
Puede ser que funcione, porque, el codebehind, lo que hace es que cuando compilas genera una dll única (programación por capas), y en esea dll todo tiene que estar en el mismo lenguaje, pero el aspx puede ser que lo interprete por otro lado y por eso te permita utilizar otro lenguaje, pero con problemas como el que nos trata. Yo te recomiendo poner toda la lógica (el código), incluido el page_load por un lado y la capa de presentación por otro (programación por capas), es más correcto.

Bien, dicho esto, si ahora no quieres cambiar todo, si quieres pudes probar esto:

donde tienes el page_load y en el lenguaje que estes usando ahí, prueba hacer esto:

... PageLoad(...)

if not ispostback
CargaCombo1
else
if request.form("__eventtarget") = "dropdownlist1"
cargacombo2
else if request.form("__eventtarget") = "dropdownlist2"
cargacombo3
end if
end if
end sub

Quizá asi te funcione y no tengas que cambiar todo.
Y de nada, para eso estamos, para aprender todos
  #28 (permalink)  
Antiguo 22/02/2005, 06:30
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 10 meses
Puntos: 1
Hola, y muchas gracias por la paciencia tambien , pero esos cambios que me recomiendas los hago el page load que esta en el codebehind? o en de la page.aspx
  #29 (permalink)  
Antiguo 22/02/2005, 09:36
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 20 años
Puntos: 8
pues, ya que el page load, lo estas haciendo (aunque es formalmente incorrecto, bajo mi punto de vista) en el .aspx, sigue haciendolo en el aspx y sigue haciendo en VB, haber si funciona
  #30 (permalink)  
Antiguo 23/02/2005, 08:41
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 10 meses
Puntos: 1
Jose estoy feliz ya funciona muchas gracias a ti y todas las personas que con su ayuda y consejos me dieron mucho apoyo y herramientas para aprender

te cuento que el problema era un detalle, me di cuenta viendo un articulo en el que insertan un drop dentro de un datagrid

tenia que poner la propiedad del drop1 asi: OnSelectedIndexChanged="DropDownList2_SelectedInde xChanged" y asi funciono

abajo dejo el codigo para el qeu lo necesite

Y un millon de gracias

Saludos

y la del drop2 asi :_ OnSelectedIndexChanged="DropDownList1_SelectedInde xChanged"
<%@ Page language="VB" Codebehind="WebForm1.aspx.cs" AutoEventWireup="true" Inherits="Rainbow.DesktopModules.Agencia.WebForm1" debug=true%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<HTML>
<script language="VB" id="Script1" runat="server">
Sub Page_Load(Sender As Object, E As EventArgs)

If Not IsPostBack

Dim ds As DataSet
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

ds = New DataSet ()
MyConnection = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")

MyCommand = New SqlDataAdapter ("select EstadoID, Nombre_Estado from Estado" , MyConnection)
MyCommand.Fill(ds,"Estado")

DropDownList1.DataSource = ds.Tables("Estado").DefaultView
DropDownList1.DataTextField = "Nombre_Estado"
DropDownList1.DataValueField ="EstadoID"
DropDownList1.DataBind()
DropDownList1.Items.Insert(0, "Seleccione un item")
DropDownList1.SelectedIndex = 0
end if

end sub

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

Dim DS As DataSet
Dim MyConnection As SQLConnection
Dim MyCommand As SqlDataAdapter

MyConnection = New SQLConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")
MyCommand = New SqlDataAdapter("select CiudadID, Nombre_Ciudad from Ciudad where EstadoID=" &DropDownList1.SelectedItem.Value,MyConnection)

DS = new DataSet()
MyCommand.Fill(DS, "Ciudad")

Dropdownlist2.DataSource=ds.Tables("Ciudad").Defau ltView
Dropdownlist2.datatextfield="Nombre_Ciudad"
Dropdownlist2.datavaluefield="CiudadID"
Dropdownlist2.DataBind()
Dropdownlist2.Items.Insert(0, "Seleccione un item")
Dropdownlist2.SelectedIndex = 0

End Sub

Private Sub DropDownList2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim ds As DataSet
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter

ds = New DataSet ()
MyConnection = New SqlConnection("SERVER=MDS01; DATABASE=be; INTEGRATED SECURITY=false;PASSWORD=sa;USER=sa")

MyCommand = New SqlDataAdapter ("select UbicacionID, Descripcion from Ubicacion WHERE CiudadID=" &Dropdownlist2.SelectedItem.Value, MyConnection)
MyCommand.Fill(ds,"Ubicacion")

DropDownList3.DataSource = ds.Tables("Ubicacion").DefaultView
DropDownList3.DataTextField = "Descripcion"
DropDownList3.DataValueField ="UbicacionID"
DropDownList3.DataBind()
DropDownList3.Items.Insert(0, "Seleccione un item")
DropDownList3.SelectedIndex = 0

End Sub

</script>

<body>
<form id="WebForm1" method="post" runat="server">

<asp:dropdownlist id="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedInde xChanged"></asp:dropdownlist>
<asp:DropDownList id="Dropdownlist2" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList2_SelectedInde xChanged"></asp:DropDownList>
<asp:dropdownlist id="Dropdownlist3" runat="server" AutoPostBack="True" ></asp:dropdownlist>

</form>
</body>
</HTML>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:23.