AJUDA DEVEXPRESS XTRAEDITOR COMBOBOXEDIT

F001E 02/05/2012 13:56:17
#401186
Bom dia a Todos...
Alguem usa os Componentes do DevExpress ? Se sim, tem como alterar o Index do ComboBoxEdit ?
Pelo que eu percebi quando voce carrega o combo ele define os Index automaticamente e eu queria alterar esses Index ..
Alguem sabe como ? Grato desde já...
KERPLUNK 02/05/2012 15:16:08
#401192
Porque trabalhar com o index de uma combo, quando pode trabalhar com o valor dela?
F001E 02/05/2012 15:21:04
#401193
KERPLUNK..pode ser também....e como faz isso ?
KERPLUNK 02/05/2012 15:32:52
#401195
Todo e qualquer combo, possui as propriedades [Ô]DataTextField[Ô] e [Ô]DataValueField[Ô] que correspondem respectivamente ao valor de cada ítem e o que deve ser exibido no mesmo. Por exemplo, uma lista de clientes que vem do banco assim:
Codigo;Nome;DataNascimento
1;Jose;01/05/1976
3;Paulo;04/06/1970
5;Antonio;08/09/1978

Quando você buscar essa lista, seria algo como(C#):
List<Cliente> clientes = DAO.BuscaClientes(); //BuscaClientes, retorna uma lista já preenchida de clientes
drpCliente.DataTextField = [Ô]Nome[Ô];
drpCliente.DataValueField = [Ô]Codigo[Ô];
drpCliente.DataSource = clientes;
//drpCliente.DataBind();// caso seja aplicação web...

Com isso, seu dropdown vai ser preenchido com os ítens da lista [Ô]clientes[Ô], o que vai aparecer no dropdown é:
Jose
Paulo
Antonio

Mas quando você usar a propriedade [Ô]SelectedValue[Ô], vai ter 1 ou 3 ou 5, de acordo com o ítem selecionado, não importando assim a posição em que o mesmo aparece, você pode até mesmo fazer o select(dentro do método [Ô]BuscaClientes[Ô]) ordenado por data ou por código, da maneira que você quiser, pois o que vai importar é o código de quem está selecionado e não sua posição na combo...
VINICIUSVB 02/05/2012 15:38:52
#401197
Olá F001E

Você pode obter um valor selecionado do ComboBoxEdit através das propriedades [ô]EditValue[ô] e [ô]Text[ô].


F001E 02/05/2012 16:19:45
#401200
O Problema que o Combo do DevExpress nao tem o [Ô]DataTextField[Ô] e [Ô]DataValueField[Ô]....
Carregar os Dados não é problema ....o problema é Selecionar um Registro no Combo uma vez que só Salvo no Banco do Dados o Código do Centro de Custo.....por isso falei do Index..se tivesse como Alterar eu colocava o Código do Centro de Custo dai era fácil selecionar na Combo....
KERPLUNK 02/05/2012 16:35:37
#401204
Não existe essas propriedades com esse mesmo nome, mas existem equivalentes:
<dxe:ASPxComboBox ID=[Ô]ASPxComboBox1[Ô] runat=[Ô]server[Ô] DataSourceID=[Ô]ObjectDataSource2[Ô] TextField=[Ô]FirstName[Ô] ValueField=[Ô]Guid[Ô] ValueType=[Ô]System.Guid[Ô]>
No caso, seriam [Ô]TextField[Ô] e [Ô]ValueField[Ô]
OCELOT 02/05/2012 20:24:35
#401220
Tudo depende de como você carrega os dados no ComboBoxEdit, para você selecionar o item você vai precisar encontrar o índice dele, para isso você vai usar SeuComboBoxEdit.Properties.Items.IndexOf, mas desta forma você já precisa ter o objeto correspondente ao item, então isso varia um pouco da forma como você carrega os dados no combo e de como você pega qual deles deve ser selecionado.

Se você explicar melhor como você carrega o combo e como pega qual item deve ser selecionado pode ficar mais fácil ajudar.
F001E 03/05/2012 08:42:13
#401246
OCELOT...vamos lá...
Carrego o ComboBox assim

Private Sub CarregaCentroCusto()
Try
Dim ComboCentroCusto As DevExpress.XtraEditors.Repository.RepositoryItemComboBox = cboCentroCusto.Properties
SQL = [Ô][Ô]
SQL = SQL & [Ô]SELECT CENTROCUSTO,DESCRICAO[Ô] & Chr(13)
SQL = SQL & [Ô] FROM CENTROCUSTO[Ô] & Chr(13)
SQL = SQL & [Ô] WHERE 1 = 1[Ô] & Chr(13)
SQL = SQL & [Ô] AND CENTROCUSTO <> 0[Ô] & Chr(13)
SQL = SQL & [Ô] ORDER BY 1[Ô]
CarregarDataSet(SQL, BancoSave)
ComboCentroCusto.Items.Clear()
If oDataTable.Rows.Count > 0 Then
For Each oDataRow In oDataTable.Rows
ComboCentroCusto.Items.AddRange(New String() {oDataRow([Ô]Descricao[Ô])})
Next
End If
Catch ex As Exception
TratarErro([Ô]frmAgendamentoConsulta_CentroCusto[Ô], [Ô]CarregaCentroCusto[Ô], Err.Number, Err.Description, Erl)
End Try
End Sub

Tentei usar o IndexOf mas nao funcionou nao...provavelmente fix errado....
OCELOT 03/05/2012 10:51:54
#401258
Eu diria para você usar um outro componente deles que deve facilitar um pouco isso, no caso ali você está trazendo só a descrição, porém pleo que entendi você precisa selecionar o item baseado no código, então eu diria para usar o LookUpEdit, que é basicamente um combo que funciona ligado a uma fonte de dados

Nele em vez de você adicionar item por item você simplesmente colocar o seu datatable como DataSource dele, e então você pode encontrar o indice baseado em qualquer campo do datatable

Ficaria algo assim, você adiciona o LookUpEdit no lugar do combo e define o Properties.DisplayMember dele pro nome do campo [Ô]DESCRICAO[Ô], e então na hora de carregar:
Private Sub CarregaCentroCusto()
Try
SQL = [Ô][Ô]
SQL = SQL & [Ô]SELECT CODIGO,CENTROCUSTO,DESCRICAO[Ô] & Chr(13)
SQL = SQL & [Ô] FROM CENTROCUSTO[Ô] & Chr(13)
SQL = SQL & [Ô] WHERE 1 = 1[Ô] & Chr(13)
SQL = SQL & [Ô] AND CENTROCUSTO <> 0[Ô] & Chr(13)
SQL = SQL & [Ô] ORDER BY 1[Ô]
CarregarDataSet(SQL, BancoSave)
lookUpEdit.Properties.DataSource = oDataTable
Catch ex As Exception
TratarErro([Ô]frmAgendamentoConsulta_CentroCusto[Ô], [Ô]CarregaCentroCusto[Ô], Err.Number, Err.Description, Erl)
End Try
End Sub


Repare que adicionei o campo CODIGO na SQL, ele vai ser usado para localizar o registro, então para selecionar ficaria algo do tipo:

lookUpEdit.ItemIndex = lookUpEdit.Properties.GetDataSourceRowIndex([Ô]CODIGO[Ô], variavelComOCodigoParaSerSelecionado)

Não testei aqui, mas é algo deste tipo, faça uns testes ai, se não conseguir eu dou uma olhada melhor aqui.
F001E 04/05/2012 09:15:12
#401345
OCELOT...deu certo seu esquema ae....mas quando eu seleciono a caixa do Look não aparece o que foi Selecionado..fica igual da figura ae....
Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas