2009-08-04 6 views
3

Cela devrait être une tâche assez facile, mais je suis un peu perplexe, j'ai un contrôle LookUpEdit, je l'ai databound à une source de données et définissez le displaymember et ValueMenber correctement.DevExpress LookUpEdit Problème

Ce contrôle est maintenant correctement rempli.

Mon problème est que normalement je tirais des données, puis « ensemble » à l'ID par exemple:

LookUpEdit.EditValue = [ID de certains ma base de données]

Cependant, dans ce cas particulier, Je n'ai pas accès à l'ID MAIS j'ai accès à la valeur de disjoncteur (à partir de la base de données), alors comment définir le contrôle LookUpEdit étant donné la valeur displaymember uniquement?

Répondre

7

Utilisation:

lookUp.EditValue = lookUp.Properties.GetKeyValueByDisplayText(yourDisplayText); 

Il est la voie privilégiée. L'utilisation de la propriété Text est un peu illogique comme vous l'avez noté. Cela fonctionne maintenant, mais je ne serais pas surpris s'il cesse de fonctionner à l'avenir après la mise à niveau des assemblys DevExpress.

+0

Oui! merci cela rend plus de sens. – Darknight

+0

Désolé typo: 'beaucoup' – Darknight

0

Résolu!

Si vous définissez comme suit:

LookUpEdit .Text = [Valeur de chaîne de base de données]

SI que la valeur de chaîne correspond exactement, le EditValue (à savoir l'ID) est également correctement défini sur l'élément que vous avez extrait de la base de données.

Cette propriété 'Texte' semble quelque peu illogique (à mon avis) (par exemple, ils ont GetDatasourceByName etc, sûrement il serait logique d'avoir SetItemByName ou quelque chose de similaire!), Mais cela fonctionne dans tous les cas.

Questions connexes