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

igualar valor de dropdownlist

Estas en el tema de igualar valor de dropdownlist en el foro de .NET en Foros del Web. hola a todos tengo un problema en como igualar el valor que esta seleccionado dentro de un dropdownlist la linea que he probado es la ...
  #1 (permalink)  
Antiguo 19/11/2009, 11:13
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
igualar valor de dropdownlist

hola a todos tengo un problema en como igualar el valor que esta seleccionado dentro de un dropdownlist

la linea que he probado
es la siguiente

this.plan2.SelectedIndex = plan2.Items.IndexOf(plan2.Items.FindByValue(" "));

no marca error pero no funciona no guara el valor ya que caundo verifico que se haya realizado el registroen la base no se ve reflejado


this.plan2.SelectedIndex=plan2.SelectedValue.ToStr ing();
esta linea me genera un error de comversion de cadena a entero

ayudapor favor he pensado peor no se me ocurre nadamas
gracias por la ayuda y atencio prestada
  #2 (permalink)  
Antiguo 19/11/2009, 12:08
 
Fecha de Ingreso: febrero-2003
Ubicación: chile
Mensajes: 101
Antigüedad: 21 años, 2 meses
Puntos: 1
Respuesta: igualar valor de dropdownlist

NO entiendo lo que quieres hacer....
__________________
s[K]eL
  #3 (permalink)  
Antiguo 19/11/2009, 12:22
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: igualar valor de dropdownlist

Cita:
this.plan2.SelectedIndex=plan2.SelectedValue.ToStr ing();
SelectedIndex acepta valores enteros, tu le estás asignando una cadena.

Código c#:
Ver original
  1. this.plan2.SelectedIndex= Convert.ToInt32(plan2.SelectedValue);

Así sería lo correcto.
__________________
Eduardo Peredo
Wigoin
  #4 (permalink)  
Antiguo 19/11/2009, 12:53
Avatar de AWesker  
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 27
Respuesta: igualar valor de dropdownlist

this.plan2.SelectedValue = "1";//Un String como value
(System.Convert.ToInt32(this.plan2.SelectedIndex= 1)).ToString();//Valores Enteros


Por si queres setear el valor a cero, pues se me ocurren dos formas:

//1. Con el SelectedIndex:
(System.Convert.ToInt32(this.plan2.SelectedIndex= 0)).ToString();

//2. Con el SelectedValue:
this.plan2.SelectedValue = "0";

Ojalá te sirva....

Última edición por AWesker; 19/11/2009 a las 13:25
  #5 (permalink)  
Antiguo 20/11/2009, 09:27
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: igualar valor de dropdownlist

bueno gracias probe ya las lineas que me indicaron el problemaes que no me resperta el valor que tiene seleccionado el dropdownlist y en l a base de datos me sigue poniendo el valor 0 es por que mi linea
this.plan2.SelectedValue = "0";
se activa cuando el panel desaparece.entonces no se comohacer que cambieel valor.



Miren la cosa esta asi tengo un dropdown list y un checkboxlist anbos deben tener algoseleccionado o de lo contrario el boton de ingresar no hace nada y mandalos respectivos mensajes de que se seleccione un valor. Uno de esos mensajes es mostrado mediante un panel el cualsi el check no tiene seleccionado ningun valor y se pulsa in gresar se pone visible y guarda el valor seleccionado en el dropdown una vez que tiene ambos valores ya se ingresa correctamente
pero ahora lo que quiero es que despues de este ingreso limpie el dropdown por que el check ya lo limpia se que para que limpi el dropdown debo usar la siguente linea

this.plan2.SelectedIndex = 0;

la pongo en esta parte de codigo

if (String.IsNullOrEmpty(this.depto2.SelectedValue.To String()))
{
Panel1.Visible = true;
// this.plan2.SelectedIndex= Convert.ToInt32(plan2.SelectedValue);

}
else {
Panel1.Visible = false;
this.plan2.SelectedValue = "0";

}


pero si lo dejo asi sucede lo que explique antes toma el valor 0 siempre y no importa que la linea de arriba diga que el valor sera = con lo qu tengo seleccionado esto por que cuando desaparece el panel pues el drop tomara el valor 0 en tonces como debo hacerparapoder borrar el dropdown una vez que se ha ingresado el valor ala bd.
gracias por la atencion
  #6 (permalink)  
Antiguo 20/11/2009, 11:08
Avatar de AWesker  
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 27
Respuesta: igualar valor de dropdownlist

Pues con una inspección rápida , la condición if (String.IsNullOrEmpty(this.depto2.SelectedValue.To String())) siempre dará como resultado false, porque el dropdownlist siempre tendrá un valor. Te sugiero que utilices otra condición como por ejemplo: if(Convert.ToInt32(depto2.SelectedIndex)!=0) o una condición parecida. Desde mi punto de vista puede ser esto. Probalo y nos contas despues.

Una cosa más ¿cómo le agregas el valor 0 al DropDownList? desde el diseño o mediante código (C# o sql)
  #7 (permalink)  
Antiguo 20/11/2009, 12:31
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: igualar valor de dropdownlist

ya lo prbe funciona igual que antes y lo stoya gregando desde diseno me diante iun data set que cargala suiguiente consulta
select 0 as id_plan, 'Seleccione la opcion' as nom_plan union
select id_plan, nom_plan from planes
  #8 (permalink)  
Antiguo 20/11/2009, 14:12
Avatar de AWesker  
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 27
Respuesta: igualar valor de dropdownlist

¿A qué te refieres con "borrar el DropDownList"?

Pone un punto de interrupción y verifica el valor que tiene el DropDownList antes de terminar el evento y utiliza el try {} catch{} para ver si se da una excepcion antes o durante la ejecución de ese código.

También intenta hacer un DataBind después de setear el valor a cero. De esa forma, vuelves a enlazar el control al origen de datos. Sería más o menos esto:
if (String.IsNullOrEmpty(this.depto2.SelectedValue.To String()))
{
Panel1.Visible = true;
// this.plan2.SelectedIndex= Convert.ToInt32(plan2.SelectedValue);
}
else {
Panel1.Visible = false;
this.plan2.SelectedValue = "0";
plan2.DataBind();
}

Sino funciona eso, postea el código del evento para ver que se puede hacer. Porque confunde un poco...
  #9 (permalink)  
Antiguo 20/11/2009, 14:29
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: igualar valor de dropdownlist

con borrar me refiero a que regrese al valor inicial que es el mensaje de "seleccione una opcion"


protected void Button1_Click(object sender, EventArgs e)

SqlCommand DATOS;

{
Panel1.Visible = true;

}
else
{
Panel1.Visible = false;

this.plan2.SelectedIndex = Convert.ToInt32(plan2.SelectedValue);

}

foreach (ListItem li in depto2.Items)
{

if (li.Selected)
{

SqlConnection CONECTAR = new SqlConnection(nox);
string deptoplan = "insert into plan_departamento(id_plan,id_depto) values(@id_plan,@id_depto)";

DATOS = new SqlCommand(deptoplan, CONECTAR);


DATOS.Parameters.Add(new SqlParameter("@id_plan", SqlDbType.Int));
DATOS.Parameters["@id_plan"].Value = plan2.SelectedItem.Value;


DATOS.Parameters.Add(new SqlParameter("@id_depto", SqlDbType.Int));
DATOS.Parameters["@id_depto"].Value = li.Value;


DATOS.Connection.Open();
DATOS.ExecuteNonQuery();
DATOS.Connection.Close();

}
}

this.depto2.ClearSelection();
//this.plan2.SelectedIndex = 0;
}


el panel en el pageload inicia de esto modo
Panel1.Visible = false;
  #10 (permalink)  
Antiguo 20/11/2009, 14:33
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: igualar valor de dropdownlist

Eso ya hace lo que quiero viviblemente pero en la base de datos meingresa en id_plan un valor 0 sea cual quiera el valor elegido perdon omiti la condicion es esta
if (Convert.ToInt32(depto2.SelectedIndex) != 0)
  #11 (permalink)  
Antiguo 20/11/2009, 14:58
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: igualar valor de dropdownlist

Este codigo funciona biene no hay problema con lo que regista en la bd de datos pero si en que no regresa el drop al valor inicial


public partial class asigna_pla_depto : System.Web.UI.Page
{
protected string nox= ConfigurationManager.ConnectionStrings["planes_estrategicosConnectionString"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{

Panel1.Visible = false;

}
protected void Button1_Click(object sender, EventArgs e)
{


SqlCommand DATOS;

if (Convert.ToInt32(depto2.SelectedIndex) != 0)
{
Panel1.Visible = true;
this.plan2.SelectedIndex = Convert.ToInt32(plan2.SelectedValue);


}
else
{
Panel1.Visible = false;
this.plan2.SelectedValue = "0";
plan2.DataBind();

}

foreach (ListItem li in depto2.Items)
{

if (li.Selected)
{
SqlConnection CONECTAR = new SqlConnection(nox);
string deptoplan = "insert into plan_departamento(id_plan,id_depto) values(@id_plan,@id_depto)";

DATOS = new SqlCommand(deptoplan, CONECTAR);


DATOS.Parameters.Add(new SqlParameter("@id_plan", SqlDbType.Int));
DATOS.Parameters["@id_plan"].Value = plan2.SelectedItem.Value;


DATOS.Parameters.Add(new SqlParameter("@id_depto", SqlDbType.Int));
DATOS.Parameters["@id_depto"].Value = li.Value;


DATOS.Connection.Open();
DATOS.ExecuteNonQuery();
DATOS.Connection.Close();

}
}

this.depto2.ClearSelection();
//this.plan2.SelectedIndex = 0;
}


protected void Button2_Click(object sender, EventArgs e)
{
Response.Redirect("Bienvenida.aspx");
}

}
  #12 (permalink)  
Antiguo 23/11/2009, 10:44
Avatar de AWesker  
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 27
Respuesta: igualar valor de dropdownlist

Bueno, hubiera intentado hacer algo el estos dos días, pero no tengo .Net en casa porque mi PC no lo soporta , así que me toca ver las cosas en el trabajo.

Pues bien, primero que nada, dijiste anteriormente que ingresabas el valor 0 desde el diseño o sea que pusiste la opción AppendDataBoundItems y la seteaste en true. De otra forma no saldría el valor 0 con los valores de la BD.

Otra cosa, this.depto2.ClearSelection(); ¿era para probar?¿o siempre lo has tenido?¿utilizas updatepanel?

Ah, y si puedes, ponle unos cuantos comentarios al código, así facilitaría más entender la forma en la que intentas hacerlo...
  #13 (permalink)  
Antiguo 25/11/2009, 15:07
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: igualar valor de dropdownlist

si desde diseno peor no uso la opcion AppenItems si no lo cargo desde un datset con la consulta siguiente

select 0 as id_plan, 'Seleccione la opcion' as nom_plan union
select id_plan, nom_plan from planes

por segundo punto el this.depto2.ClearSelection(); esta siempre no uso updatepanel
y mi codigo final esta de la siguiente manera ya gregque lagunos cometarios
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Data.Odbc;
using System.Data.OleDb;


public partial class asigna_pla_depto : System.Web.UI.Page
{
protected string nox= ConfigurationManager.ConnectionStrings["planes_estrategicosConnectionString"].ConnectionString;// conexion con la base de datos
protected void Page_Load(object sender, EventArgs e)
{

Panel1.Visible = false;// el panel inicia oculto

}
protected void Button1_Click(object sender, EventArgs e)
{
SqlCommand DATOS;// se declara el comando que va hacer el registro
if (Convert.ToInt32(depto2.SelectedIndex) != 0) // si el valor selecciondo en el dropdown list es igual 0
{
Panel1.Visible = true; // se muetra el mensaje que se debe seleccionar un valor en el checkbox

}
else
{
Panel1.Visible = false;//si el valor del checkbox es diferente de 0 el panel permaneceoculto

}


foreach (ListItem li in depto2.Items)// recorre el checkbox para saber que valor va a tomar el paramtro quehace referencia a este componente
{

if (li.Selected)
{

SqlConnection CONECTAR = new SqlConnection(nox);// llama la conexion de la base de datos
string deptoplan = "insert into plan_departamento(id_plan,id_depto) values(@id_plan,@id_depto)";// indica en que tablas se va hacer la insercion de los valores

DATOS = new SqlCommand(deptoplan, CONECTAR);


DATOS.Parameters.Add(new SqlParameter("@id_plan", SqlDbType.Int));// valor para id_plan va a ser tomado de el dropdownlist
DATOS.Parameters["@id_plan"].Value = plan2.SelectedItem.Value;


DATOS.Parameters.Add(new SqlParameter("@id_depto", SqlDbType.Int));//valor del departmaneto va ser tomado del checkboxlist
DATOS.Parameters["@id_depto"].Value = li.Value;


DATOS.Connection.Open();
DATOS.ExecuteNonQuery();
DATOS.Connection.Close();
}
}

this.depto2.ClearSelection();//limpia el checkbox de los valores que estuvieron seleccionados

}


protected void Button2_Click(object sender, EventArgs e)
{
Response.Redirect("nuevo_plan.aspx");
}
}
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 06:34.