2010-07-23 5 views
0

J'utilise DevExpress.XtraEditors.LookUpEdit pour afficher les informations sur les classes disponibles. Actuellement, il a 3 colonnes. Le lookupedit fonctionne parfaitement sauf quand je mets le editValue à la dernière ligne. Lorsque la valeur d'édition est définie sur une ligne autre que la dernière, elle affiche la ligne sélectionnée lorsque le fichier lookupedit n'est pas encore ouvert lorsque le paramètre lookupedit est défini sur la dernière ligne, rien n'est affiché. Actuellement, je suis:Devexpress LookupEdit n'affiche pas la ligne sélectionnée pour la dernière ligne

lookupedit.Properties.ForceInitialize() ' Force it to initialize 
lookupedit.Properties.PopulateColumns() ' Force the lookupedit to populate 
    For i As Integer = 0 To tableData.Rows.Count - 1 ' Go through the information in it 
     If lblClassVal.Text = tableData.Rows(i).Item(1).ToString() Then ' if the current row is equal to the value I want to select 
      lookupedit.EditValue = i + 1 ' then I set the lookupedit value 
     End If 
    Next i 
lookupedit.Properties.Columns("class_id").Visible = False ' set two columns to invisible 
lookupedit.Properties.Columns("active").Visible = False 
lookupedit.Properties.Columns("class_name").Caption = "Class Name" ' set the 3rd column to a better title 

En ce moment, le lookupedit affiche le texte sélectionné à moins que je sélectionne la dernière ligne, le numéro de ligne tableData.Rows.Count qui affiche alors rien. Pourtant quand j'imprime les valeurs ils sont corrects et quand j'enlève le +1 en réglant le lookupedit il le met à la ligne précédente je veux un la première rangée ne peut pas être montrée.

Répondre

0

Ok, j'ai résolu ce problème. Juste au cas où quelqu'un d'autre aurait ce problème, je laisserai la question en suspens. Par conséquent, le DevExpress LookUpEdit n'utilise pas le numéro de ligne. Il utilise la colonne ID de votre table LookUpEdit. Ainsi, au lieu de sélectionner ceci par le numéro de ligne, définissez EditValue sur le numéro d'identification de la ligne que vous voulez sélectionner. Ainsi, au lieu de:

If lblClassVal.Text = tableData.Rows(i).Item(1).ToString() Then ' if the current row is equal to the value I want to select 
    lookupedit.EditValue = i + 1 ' then I set the lookupedit value 
End If 

Utilisation:

If lblClassVal.Text = tableData.Rows(i).Item(1).ToString() Then ' if the current row is equal to the value I want to select 
    lookupedit.EditValue = tableData.Rows(i).Item(0).ToString() ' Where Item(0) is my ID number column 
End If 
Questions connexes