none
colocar una opcion por defecto en un combobox ejemplo "todos"

    Question

  • Que tal necesito que antes que pinche en el combo me aparesca por defecto la opcion Todos. eso gracias
    Wednesday, January 20, 2010 3:04 PM

Answers

  • hola

    bueno le agregue uan serie de mejoras al codigo que seguro te sean de interes

    private void cbb_Cadena_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (flag == 0){ }
        else{
        open_DB();
       

        string query = "select CodComercio, NombComercio from sip.dbo.comercio Where codcadena = @cod";
        SqlCommand cmd2 = new SqlCommand(query, connDB);
        cmd2.Parameters.AddWithValue("cod", cbb_Cadena.SelectedValue);

        SqlDataAdapter DaRec2 = new SqlDataAdapter(cmd2);
       
        DataTable DtComercio = new DataTable();
        DaRec2.Fill(DtComercio);

        DataRow row = DtComercio.NewRow();
        row["CodComercio"] = 0;
        row["NombComercio"] = "TODOS";
        dt.Rows.InsertAt(row, 0);
       
        cbb_Comercio.DataSource = DtComercio;
        cbb_Comercio.DisplayMember = "NombComercio";
        cbb_Comercio.ValueMember = "CodComercio";
       
        flag = 1;
        cbb_Comercio.Enabled = true;
        flag1 = 1;
    }


    como veras agregue parametros en tu consulta, y evite tanto el uso de propiedades
    ademas agtegie el nuevo registro de todos en elos datos y por ultimo realizo el binding

    espero te sea de utilidad

    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marked as answer by Aprendis24 Wednesday, January 20, 2010 3:56 PM
    Wednesday, January 20, 2010 3:44 PM

All replies

  • Como estas cargando datos en el combo?
    Wednesday, January 20, 2010 3:12 PM
  • hola

    ha varias tecnicas para lograr esto

    una puede ser despues de bindear los datos agregando la linea

    combo1.DaTasource = dt;
    combo1.DisplayMember ="compodesc";
    combo1.ValueMember = "campoid";

    combo1.Items.Insert(0, "TODOS");


    pero esta tiene el problema que ese item no tendra un valor de SelectedValue


    la otra tecnica es agregar un item a los datos antes de bindear
    por ejemplo si suas un datatable, podrias agregar una nueva row

    Datatable dt = GetDatos();

    DataRow row = dt.NewRow();

    row["campo1"] = valor1;
    row["campo2"] = valor2;

    dt.Rows.Insert(row, 0);

    combo1.DaTasource = dt;
    combo1.DisplayMember ="compodesc";
    combo1.ValueMember = "campoid";


    como veras modificas los datos y luego bidneas

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Wednesday, January 20, 2010 3:24 PM
  • por que mire este es mi codigo

     

    private void cbb_Cadena_SelectedIndexChanged(object sender, EventArgs e)
    {
    if (flag == 0){ }
    else{
    open_DB();
    SqlCommand cmd2 = new SqlCommand();
    DataSet DsComercio = new DataSet();

    cmd2.CommandText =
    "select CodComercio, NombComercio from sip.dbo.comercio Where codcadena = " + cbb_Cadena.SelectedValue;
    cmd2.CommandTimeout = 16000;
    cmd2.Connection = connDB;
    SqlDataAdapter DaRec2 = new SqlDataAdapter(cmd2);
    DaRec2.TableMappings.Add(
    "Table", "Customers2");
    DaRec2.Fill(DsComercio);

    cbb_Comercio.DataSource = DsComercio;
    cbb_Comercio.DataSource = DsComercio.Tables[0].DefaultView;
    cbb_Comercio.DisplayMember =
    "NombComercio";
    cbb_Comercio.ValueMember =
    "CodComercio";
    flag = 1;
    cbb_Comercio.Enabled =
    true;
    flag1 = 1;
    }
    }

    Wednesday, January 20, 2010 3:35 PM
  • Por otro lado, si estas haciendo los valores del combobox desde ahi mismo agrega el sgte valor:
    <asp:DropDownList ID="DropDownList1" runat="server">
        <asp:ListItem>TusValores</asp:ListItem>
        <asp:ListItem Selected="True" Value="Todos"></asp:ListItem>
    </asp:DropDownList>
    Eso lo adaptas a lo tuyo.

    salu2
    Wednesday, January 20, 2010 3:36 PM
  • Pistorius eso te serviria en el caso de ser ASP.NET

    Si la respuesta te ha sido util Marcala como Respuesta o Votala.
    Mi Blog: Jtorrecilla
    Wednesday, January 20, 2010 3:38 PM
  • hola

    bueno le agregue uan serie de mejoras al codigo que seguro te sean de interes

    private void cbb_Cadena_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (flag == 0){ }
        else{
        open_DB();
       

        string query = "select CodComercio, NombComercio from sip.dbo.comercio Where codcadena = @cod";
        SqlCommand cmd2 = new SqlCommand(query, connDB);
        cmd2.Parameters.AddWithValue("cod", cbb_Cadena.SelectedValue);

        SqlDataAdapter DaRec2 = new SqlDataAdapter(cmd2);
       
        DataTable DtComercio = new DataTable();
        DaRec2.Fill(DtComercio);

        DataRow row = DtComercio.NewRow();
        row["CodComercio"] = 0;
        row["NombComercio"] = "TODOS";
        dt.Rows.InsertAt(row, 0);
       
        cbb_Comercio.DataSource = DtComercio;
        cbb_Comercio.DisplayMember = "NombComercio";
        cbb_Comercio.ValueMember = "CodComercio";
       
        flag = 1;
        cbb_Comercio.Enabled = true;
        flag1 = 1;
    }


    como veras agregue parametros en tu consulta, y evite tanto el uso de propiedades
    ademas agtegie el nuevo registro de todos en elos datos y por ultimo realizo el binding

    espero te sea de utilidad

    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marked as answer by Aprendis24 Wednesday, January 20, 2010 3:56 PM
    Wednesday, January 20, 2010 3:44 PM
  • se le agradece

    Wednesday, January 20, 2010 3:57 PM
  • buenas,

    Los controles tienen la propiedad "AppendDataBoundItems" si la pones a True, al hacer el binding no borra los datos que hallas añadido manualmente al control. Si al valor le pones "0" Saldrá de primero. y sino con la propiedad "SelectedValue" lo seleccionas.

    Esto lo normal es hacerlo en el Load y en ASP.NET dentro del IsPostBack.

    this.NombreControl.AppendDataBoundItems=true;

    Saludos.

    Sunday, October 28, 2012 9:23 AM