saludos:
tengo problemas con el DropDownList1, ya q al seleccionar otro item, en el
DropDownList1_SelectedIndexChanged
no pasa na?
pq?
| ||||
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 |
| ||||
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 |
| ||||
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 |
| ||||
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 |
| ||||
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); |
| ||||
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 |
| ||||
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. |
| ||||
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) { } |
| ||||
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 |
| ||||
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) { } |
| ||||
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 |
| ||||
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 |
| ||||
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 |
| ||||
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 |
| ||||
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 } } |
| ||||
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# |
| ||||
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 |
| ||||
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á. |
| ||||
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 |
| ||||
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 |
| ||||
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> |