Foros del Web » Programando para Internet » ASPX (.net) »

rellenar un dropdownlist a partir de otro

Estas en el tema de rellenar un dropdownlist a partir de otro en el foro de ASPX (.net) en Foros del Web. Hola amigos!! tengo un dropdownlist con paises (España y Portugal) y cuando elijo España(por ejemplo) quiero que se me rellene otro dropdownlist con sus provincias ...
  #1 (permalink)  
Antiguo 10/04/2007, 12:20
 
Fecha de Ingreso: mayo-2006
Mensajes: 66
Antigüedad: 18 años
Puntos: 0
rellenar un dropdownlist a partir de otro

Hola amigos!! tengo un dropdownlist con paises (España y Portugal) y cuando elijo España(por ejemplo) quiero que se me rellene otro dropdownlist con sus provincias y que lo haga en la misma página. He probado de todo y no me hace caso cuando cambio de un pais a otro. Donde tengo que meter el código? yo lo meto en la page_load pero nada. ¿Qué es lo que me estoy pasando por algo?
(uso asp.net 2003 y c#)
Muchas gracias
  #2 (permalink)  
Antiguo 10/04/2007, 12:27
 
Fecha de Ingreso: septiembre-2006
Mensajes: 34
Antigüedad: 17 años, 8 meses
Puntos: 1
Re: rellenar un dropdownlist a partir de otro

creo que faltara activar la propiedad de autopostback del dropdownlist y el código que carga el el nuevo dropdownlist lo puedes meter en el evento DropDownList1_SelectedIndexChanged este es el que contiene los piases. en este pones el código que llenara el otro dropdownlist
espero ser de ayuda.
  #3 (permalink)  
Antiguo 11/04/2007, 09:28
 
Fecha de Ingreso: mayo-2006
Mensajes: 66
Antigüedad: 18 años
Puntos: 0
Re: rellenar un dropdownlist a partir de otro

Muchas gracias, lo he probado pero sigue sin rellenarme, la primera seleccion me lo hace bien pero no la segunda. Sigue escapándoseme algo, hay va el código:

private void ddlPais_SelectedIndexChanged(object sender, System.EventArgs e)
{
if (ddlPais.SelectedIndex==0)
{
ddlProvincia.Items.Add("A Coruña");
ddlProvincia.Items.Add("Pontevedra");
ddlProvincia.Items.Add("Lugo");
ddlProvincia.Items.Add("Ourense");

}
else
{
if(ddlPais.SelectedIndex==1)
{
ddlProvincia.Items.Add("Aveiro");
ddlProvincia.Items.Add("Braga");
ddlProvincia.Items.Add("Bragança");
ddlProvincia.Items.Add("Porto");
ddlProvincia.Items.Add("Viana do Castelo");
ddlProvincia.Items.Add("Vila Real");
ddlProvincia.Items.Add("Viseu");
}
}
}
  #4 (permalink)  
Antiguo 21/04/2007, 20:58
 
Fecha de Ingreso: abril-2007
Mensajes: 2
Antigüedad: 17 años
Puntos: 0
Re: rellenar un dropdownlist a partir de otro

private void ddlPais_SelectedIndexChanged(object sender, System.EventArgs e)
{
if (ddlPais.SelectedIndex==0)
{
ddlProvincia.Items.Add("A Coruña");
ddlProvincia.Items.Add("Pontevedra");
ddlProvincia.Items.Add("Lugo");
ddlProvincia.Items.Add("Ourense");

}
else
{
ddlProvincia.Items.Add("Aveiro");
ddlProvincia.Items.Add("Braga");
ddlProvincia.Items.Add("Bragança");
ddlProvincia.Items.Add("Porto");
ddlProvincia.Items.Add("Viana do Castelo");
ddlProvincia.Items.Add("Vila Real");
ddlProvincia.Items.Add("Viseu");
}
}

Pueba a ver si te funciona...

Daniel A Motta Milano
Analista de Informatica I
mail: [email protected]
  #5 (permalink)  
Antiguo 27/04/2007, 03:47
 
Fecha de Ingreso: abril-2007
Mensajes: 2
Antigüedad: 17 años
Puntos: 0
Re: rellenar un dropdownlist a partir de otro

Hola yo tuve esa duda y ya lo he solucionado toma mi código.
Tienes que poner la propiedad autopostback a true.
Es muy facil en el primer dropdownlist accedo a las marcas de un producto(se pone en el evento Load) y en el segundo accedo al modelo.(el código se pone en el evento selectindexchange del primer drop)




protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DropDownList1.Items.Clear();
OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=""C:\Documents and Settings\Guillermo\Mis documentos\Visual Studio 2005\WebSites\Proyecto Final ISW2\App_Data\Proyectoisw2bbdd.mdb"";Persist Security Info=True");
OleDbCommand cmd = cnn.CreateCommand();
cnn.Open();
cmd.Transaction = cnn.BeginTransaction();
cmd.CommandText = "select marca from Datos_productos";
OleDbDataReader dr = cmd.ExecuteReader();
DropDownList1.DataSource = dr;
DropDownList1.DataTextField = "marca";
DropDownList1.DataBind();
DropDownList1_SelectedIndexChanged(null, null);
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=""C:\Documents and Settings\Guillermo\Mis documentos\Visual Studio 2005\WebSites\Proyecto Final ISW2\App_Data\Proyectoisw2bbdd.mdb"";Persist Security Info=True");
OleDbCommand cmd = cnn.CreateCommand();
cnn.Open();
cmd.Transaction = cnn.BeginTransaction();
cmd.CommandText = "select modelo from Datos_productos where marca=('" + DropDownList1.Text + "')";
OleDbDataReader dr = cmd.ExecuteReader();
DropDownList2.DataSource = dr;
DropDownList2.DataTextField = "modelo";
DropDownList2.DataBind();
/*cmd.CommandText = "select ruta from Datos_productos where modelo=('" + DropDownList2.Text + "')";
Image1.ImageUrl = "ruta";*/
}
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 20:30.