none
Combobox RRS feed

  • Pergunta

  • Pessoal,

    Tenho um combobox que recebe uma consulta SQL no seu datasource e tem o DisplayMember e ValueMember.
    Porém agora preciso continuar recebendo o datasource e adicionar um texto "Selecione um item" dentro desse textbox. Mas não consigo pq o já fez o bound.

    O que posso fazer?


    Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta!
    segunda-feira, 26 de abril de 2010 12:27

Respostas

  • Eu geralmente crio uma nova classe com Id = 0 e a descricao.

    Ai eu adiciono na minha lista no indice 0 esse item, e após eu jogo a lista para o Combo.

    Se a sua lista não permite inserir no Indice 0 vc pode ordenar a lista por código, e Descrição.


    Quem sabe um dia os DataSets se extinguirão?
    quarta-feira, 28 de abril de 2010 12:35

Todas as Respostas

  • Nao entendi a tua questao mas veja este codigo:

    DataSet bindingSource = new DataSet("MyBindings");

                 DataTable result = GetDataTable();

                 this.dataGridView1.DataSource = result;

                 this.dataGridView1.ClearSelection();

     

                 bindingSource.Tables.Add(result);

                 this.comboBox1.DataSource = bindingSource.Tables[0];

                 this.comboBox1.DisplayMember = "FirstName";

                 this.comboBox1.ValueMember = "ID";

                return;

    ---------------------------------------------------------------------------------------------------------------------------------------

     private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

            {

                this.comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);

                this.textBox1.DataBindings.Clear();  // You can have only one binding per property.

                Object item = this.comboBox1.SelectedItem;

                DataRowView drv = (DataRowView)item;

                this.textBox1.DataBindings.Add("Text", drv, comboBox1.DisplayMember);

                return;

     

            }



    Just Be Humble Malange!
    segunda-feira, 26 de abril de 2010 14:43
    Moderador
  • Malange, acho que o que ele esta tendo problema é em deixar escrito "Selecionar um item' como texto padrão do combobox..
    A resposta foi útil? Marque-a para que outros possam utiliza-la também!
    segunda-feira, 26 de abril de 2010 14:45
  • Malange, acho que o que ele esta tendo problema é em deixar escrito "Selecionar um item' como texto padrão do combobox..
    A resposta foi útil? Marque-a para que outros possam utiliza-la também!

    Obrigado.

     


    Just Be Humble Malange!
    segunda-feira, 26 de abril de 2010 14:56
    Moderador
  • Pessoal,

    Tenho um combobox que recebe uma consulta SQL no seu datasource e tem o DisplayMember e ValueMember.
    Porém agora preciso continuar recebendo o datasource e adicionar um texto "Selecione um item" dentro desse textbox. Mas não consigo pq o já fez o bound.

    O que posso fazer?


    Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta!

    Faz o seguinte, cria uma nova row dentro do teu dataset depois de carregar a informacao. e passa este novo row ao dataset com a informcao :Seleciona Um Item:

    aqui vai o exemplo completo:

    SqlConnection CNN = new SqlConnection(CSharp_Teste.Properties.Settings.Default.CNNSetting);

                SqlDataAdapter DataAdapter = new SqlDataAdapter(new SqlCommand("Select * From Table_Inf", CNN));

                DataTable result=new DataTable();

                DataAdapter.Fill(result);

                     DataRow SUI = result.NewRow();

                      SUI[0] = "Selecione um item";

                      result.Rows.InsertAt(SUI, 0);

                      this.comboBox1.DataSource = result;

                      this.comboBox1.DisplayMember = "Nome";

                      this.comboBox1.ValueMember = "ID"

                return result;

     

     


    Just Be Humble Malange!
    segunda-feira, 26 de abril de 2010 15:06
    Moderador
  • Malange,
    Eu não utilizo dataset, na verdade uso Linq que retorna um IEnumerable...

    Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta!
    segunda-feira, 26 de abril de 2010 16:34
  • Malange,
    Eu não utilizo dataset, na verdade uso Linq que retorna um IEnumerable...

    Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta!
    Hello, olha faz click neste linque, primeira opcao e vai fazer donwload: http://www.google.co.uk/search?hl=en&ei=JgXWS-z4HY3-0gSNx_nkDQ&sa=X&oi=spell&resnum=0&ct=result&cd=1&ved=0CAUQBSgA&q=linq+enumerable+datarow+c%23&spell=1
    Just Be Humble Malange!
    segunda-feira, 26 de abril de 2010 21:28
    Moderador
  • no seu método para preencher o datasource do seu combo, adicione a seguinte linha:
    comboBox.Items.Insert(0, "Selecione um item");
    Abraço!
    • Sugerido como Resposta Américo Arvani segunda-feira, 26 de abril de 2010 22:46
    segunda-feira, 26 de abril de 2010 21:52
  • Bernoulthy,

    Infelizmente não da pra fazer isso. Essa opção foi a primeira que eu pensei.
    O DataSource do combobox já está carregado, quando tento fazer isso ele apresenta o erro o Controle já esta Bound.


    Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta!
    terça-feira, 27 de abril de 2010 02:53
  • Coloca o código html completo ai

    "ѕó αqυєℓєѕ q тєм α ¢σяαgєм ∂є ¢αмιηнαя, ρσ∂єм νινєя тσ∂σѕ σѕ ∂ιαѕ ηα ¢єятєzα ∂є ¢нєgαя" msn: poseidonfba@hotmail.com
    terça-feira, 27 de abril de 2010 02:55
  • Poseidon...

    html?


    Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta!
    terça-feira, 27 de abril de 2010 02:56
  • Não, é um sistema windows form ne, vou fazer uma verificação aqui

    Acho q ja tou dormindo kk


    "ѕó αqυєℓєѕ q тєм α ¢σяαgєм ∂є ¢αмιηнαя, ρσ∂єм νινєя тσ∂σѕ σѕ ∂ιαѕ ηα ¢єятєzα ∂є ¢нєgαя" msn: poseidonfba@hotmail.com
    terça-feira, 27 de abril de 2010 02:58
  • Hehehehe tranquilo

    Sim é Winforms...


    Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta!
    terça-feira, 27 de abril de 2010 02:59
  • então vc poderia por exemplo criar um List e receber os dados, ai vc adiciona o array list no seu combobox atravez por ex:

    List<object> listaAtual = (combobox.DataSource as List<object>);
    listaAtual.Add("Selecione um item");
    combobox.DataSource = null;
    combobox.DataSource = listaAtual;

    ou então criar um ArrayList e preencher o combobox com o método Add() ou atravez de um laço varrendo o array e adcionando um a um dos itens ex

    foreach(string item in Arraylist.toString())

    {

        combobox.Items.add(item.toString);

    }

    Assim vc não congela o datasource do seu combo, podendo ter liberdade de inserir e remover itens dele como no exemplo que passei anteriormente. Qualquer coisa posta o código para poder-mos ajuda-lo.

    terça-feira, 27 de abril de 2010 03:09
  • Tenta criar este aqui verifica se da certo.

    DataTable novaTabela;

     DataRow novaLinha;

    novaLinha = new novaTabela.NewRow;

    novaLinha[nome do value member] = string.Empty;

    novaLinha[nome do display member] = "Selecione um Item";

    novaTabela.rows.add(novaLinha);

    quarta-feira, 28 de abril de 2010 12:23
  • Eu geralmente crio uma nova classe com Id = 0 e a descricao.

    Ai eu adiciono na minha lista no indice 0 esse item, e após eu jogo a lista para o Combo.

    Se a sua lista não permite inserir no Indice 0 vc pode ordenar a lista por código, e Descrição.


    Quem sabe um dia os DataSets se extinguirão?
    quarta-feira, 28 de abril de 2010 12:35
  • Danimar,

    Parece ser a solução mais apropriada... vou testar e dou um retorno.

     

    Valeu!


    Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta!
    quarta-feira, 5 de maio de 2010 12:40