Usuário com melhor resposta
Combobox

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!
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?- Marcado como Resposta Fernanda SimõesModerator segunda-feira, 10 de maio de 2010 13:56
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! -
-
-
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! -
-
Malange,
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
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!
Just Be Humble Malange! -
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
-
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! -
-
-
-
-
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.
-
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);
-
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?- Marcado como Resposta Fernanda SimõesModerator segunda-feira, 10 de maio de 2010 13:56
-