none
seleccionar dropdownlist y poner en varios textbox en asp c# RRS feed

  • Pregunta

  • hola quiera que al selecciona una opicion de mi drop me ponga sus valores en textbox(orden,tipo)...asi cargo mi dropdownlist  con una sola opcion de orden,como seria para agregar otra????

    private void CargaTipo()
        {  
            TipoC MyC = new TipoC();
            DataSet MyD = new DataSet();
            MyD = MyC.Carga();
            if (MyD.Tables[0].Rows.Count > 0)
            {   
                ddltipo.DataSource = MyD.Tables[0];
                ddltipo.DataTextField = "descripcion";
                ddltipo.DataValueField = "orden";
                ddltipo.DataBind();
        }

    y al seleccionar mi drop asi

    protected void ddltipo_SelectedIndexChanged(object sender, EventArgs e)
        {
           txtorden.Text = ddltipo.SelectedValue;
           
        }

    jueves, 10 de marzo de 2016 23:03

Respuestas

  • asi solucione mi duda,dejo por si tienen la misma:

    SqlConnection con = new SqlConnection(myconsql);
            string query = "SELECT * FROM tabla WHERE descripcion=@descripcion";
            SqlCommand cmd = new SqlCommand(query, con);       
            cmd.Parameters.AddWithValue("@descripcion", (ddltipo.SelectedValue));

      con.Open();
            SqlDataReader reader = cmd.ExecuteReader();

      if (reader.Read())
                {
                txtorden.Text = (string)reader["orden"].ToString();
                lblid.Text = (string)reader["id"].ToString();       

    }

    Saludos!

    viernes, 11 de marzo de 2016 20:10

Todas las respuestas

  • alguna ayuda, tengo un drop con dos texbox que quiero relacionar segun lo que seleccione en el drop
    viernes, 11 de marzo de 2016 0:44
  • vas a tener que ir contra la db para filtrar por la seleccion del combo y recuperar los demas campos que asignarias a los textbox

    no se que haran la clase TipoC, quizas sea la capa de negocio o persistencia, pero pdria ser algo como

    protected void ddltipo_SelectedIndexChanged(object sender, EventArgs e)
    {
    	int tipo = Convert.ToInt32(ddltipo.SelectedValue);
    
    	TipoC MyC  = new TipoC();
    	Datos result = myC.ObtenerPorTipo(tipo);
    	
    	
    	TextBox1.Text = result.Pop1;  
    	TextBox3.Text = result.Pop2;  
    	TextBox2.Text = result.Pop3;  
    				
    } 
    
    
    public class TipoC{
    
    	public Datos ObtenerPorTipo(int tipo){
    		
    		string connstring = "connection string";  
    		using (SqlConnection cn = new SqlConnection(connstring)) {  
    			cn.Open();  
    		 
    			string sql = "SELECT campo1, campo2, campo3 FROM Tabla WHERE id =@id";  
    			SqlCommand cmd = new SqlCommand(query, cn);  
    			cmd.Parameters.AddwithValue("@id", tipo);  
    		 
    			SqlDataReader reader = cmd.ExecuteReader();  
    		 
    			Datos obj = new Datos();
    			if (reader.Read())  
    			{  
    				obj.Prop1 = Convert.ToString(reader["campo1"]);  
    				obj.Prop2 = Convert.ToString(reader["campo2"]);  
    				obj.Prop3 = Convert.ToString(reader["campo3"]);  
    			}  
    		 
    		}
    		
    	}
    }
    
    public class Datos{
    	public string Pop1 {get;set;}
    	public string Pop2 {get;set;}
    	public string Pop3 {get;set;}
    }

    como veras usas la seleccion para ir contra la tabla y recuperar el resto

    por supeusto es un codigo de ejemplo debes adaptarlo a tu necesidad y poner los nombre de clase y propiedades de foram correcta que tengan un significado para tu desarrollo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 11 de marzo de 2016 4:28
  • ESTA ES MI CLASE, MANDO A LLAMAR UN STORE PROCEDURE DE SQL:SELECT * FROM Tipo order by  orden.

    private string myconsql = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["datosMS"].ToString();
        public DataSet Carga()
        {
            DataSet MyT = new DataSet();
            try
            {
                SqlConnection oconn = new SqlConnection(myconsql);
                oconn.Open();
                SqlCommand mycomman = new SqlCommand();
                mycomman.CommandText = "Sp_CatTipo";
                mycomman.CommandType = CommandType.StoredProcedure;
                mycomman.Connection = oconn;
                SqlDataAdapter myadaptr = new SqlDataAdapter();
                myadaptr.SelectCommand = mycomman;
                myadaptr.Fill(MyT, "Tipo");
                oconn.Close();
            }
            catch (SqlException x)
            {
                throw x;
            }
            return MyT;
        }


    viernes, 11 de marzo de 2016 15:15
  • ok en lugar de usar dataset puede usar clases y listas

    en la respuesta anterior solo puse un ejemplo, podrias implementas esta logica en la misma clase o podrias crear un distinta para obtener estos datos

    pero creo que la idea se entiende

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 11 de marzo de 2016 15:19
  • si asi al seleccionar algo del drop me lo carga bien....

    private void CargaTipo()
        {  
            TipoC MyC = new TipoC();
            DataSet MyD = new DataSet();
            MyD = MyC.Carga();
            if (MyD.Tables[0].Rows.Count > 0)
            {   
                ddltipo.DataSource = MyD.Tables[0];
                ddltipo.DataTextField = "descripcion";
                ddltipo.DataValueField = "orden";
                ddltipo.DataBind();
        }

    mi clase private string myconsql = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["datosMS"].ToString();
        public DataSet Carga()
        {
            DataSet MyT = new DataSet();
            try
            {
                SqlConnection oconn = new SqlConnection(myconsql);
                oconn.Open();
                SqlCommand mycomman = new SqlCommand();
                mycomman.CommandText = "Sp_CatTipo";
                mycomman.CommandType = CommandType.StoredProcedure;
                mycomman.Connection = oconn;
                SqlDataAdapter myadaptr = new SqlDataAdapter();
                myadaptr.SelectCommand = mycomman;
                myadaptr.Fill(MyT, "Tipo");
                oconn.Close();
            }
            catch (SqlException x)
            {
                throw x;
            }
            return MyT;
        }

    y asi al seleccionar un item me lo muestra en un textbox

                 

     protected void ddltipo_SelectedIndexChanged(object sender, EventArgs e)
        {

          txtorden.Text = ddltipo.SelectedValue;

        }

    osea en mi cargar datos como seria para agregar otro que cargue en otro textbox relacionado a lo seleccionado?

    drop me ponga sus valores en textbox(orden(txtorden.text),tipo(txttipo.text))

    viernes, 11 de marzo de 2016 16:07
  • >>osea en mi cargar datos como seria para agregar otro que cargue en otro textbox relacionado a lo seleccionado?

    pero has vuelto a explicar lo mismo que mencionaste en el principio

    la respuesta es la que proporcione, debes tomar la selecicon del combo, y realizar una consulta filtrando por ese valor por parametro

    como es un unico valor usar entidades para pasar varios datos es lo mas simple

    la pregunta seria, entiendes el ejemplo que plantee en mi primer respuesta?

    sabes definir una clase y usar el datareader para asignar datos a las propeidades ?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 11 de marzo de 2016 16:14
  • gracias, buen dia.
    viernes, 11 de marzo de 2016 16:34
  • pero pudiste solucionar el problema ?

    digo, das las gracias pero no respondes las preguntas para conocer en que parte tienes problema


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 11 de marzo de 2016 19:45
  • asi solucione mi duda,dejo por si tienen la misma:

    SqlConnection con = new SqlConnection(myconsql);
            string query = "SELECT * FROM tabla WHERE descripcion=@descripcion";
            SqlCommand cmd = new SqlCommand(query, con);       
            cmd.Parameters.AddWithValue("@descripcion", (ddltipo.SelectedValue));

      con.Open();
            SqlDataReader reader = cmd.ExecuteReader();

      if (reader.Read())
                {
                txtorden.Text = (string)reader["orden"].ToString();
                lblid.Text = (string)reader["id"].ToString();       

    }

    Saludos!

    viernes, 11 de marzo de 2016 20:10
  • gracias, busque parecida solucion y arregle mi duda,gracias por tu tiempo. saludos.
    viernes, 11 de marzo de 2016 20:12