2010-07-23 10 views
0

Я использую DevExpress.XtraEditors.LookUpEdit, чтобы отобразить информацию о доступных классах. В настоящее время он имеет 3 столбца. Функция lookupedit отлично работает, за исключением случаев, когда я устанавливаю editValue в последнюю строку. Когда значение параметра редактирования задано для любой строки, отличной от последней, она показывает выбранную строку, когда lookupedit еще не открывается, когда lookupedit установлен в последнюю строку, ничего не отображается. В настоящее время я:Devexpress LookupEdit не отображает выбранную строку для последней строки

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 

Сейчас lookupedit отображает выбранный текст, если я не выбрать последнюю строку, строка номер tableData.Rows.Count который затем ничего не отображает. Тем не менее, когда я печатаю значения, они верны, и когда я удаляю +1 при настройке lookupedit, он устанавливает его в предыдущую строку. Я хочу, чтобы первая строка не отображалась.

ответ

0

Хорошо, я решил это. На всякий случай кто-то другой, если у меня возникнут проблемы, я оставлю вопрос.

Таким образом, DevExpress LookUpEdit не использует номер строки, он использует столбец идентификатора в таблице LookUpEdit. Поэтому вместо выбора этого номера строки установите EditValue на идентификационный номер строки, которую вы хотите выбрать. Таким образом, вместо:

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 

Использование:

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 
Смежные вопросы