Вопрос

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

У меня есть AutoCompleteBox элемент управления, который извлекает результаты посредством асинхронного вызова, хотя я не могу найти надежный способ узнать, когда пользователь выбрал опцию из списка возвращаемых значений.Я пробовал подключаться к SelectionChanged событие, но это срабатывает при каждом движении в раскрывающемся списке автозаполнения, когда то, что я на самом деле хочу знать, - это когда пользователь окончательно сказал "Эй, это тот элемент, который я хочу!", либо щелкнув по нему, либо выбрав его с помощью клавиши возврата.

Я был бы очень признателен за любой совет, так как сейчас это начинает немного сводить меня с ума.=)

Спасибо

P.S.Тот самый SelectionChanged аргументы события предоставляют AddedItems и RemovedItems, но не давайте никаких прямых указаний на тип выбора, который я ищу.

Это было полезно?

Решение

Нет конкретного события, которое указывало бы, что used специально расширился для опции, а не просто для просмотра.

Для вашего сценария наиболее близким, что вы можете получить, является DropDownClosed или даже LostFocus события затем получают доступ к SelectedItem собственность.

Другие советы

Если вы используете Telerik AutoCompleteBox, возможно, событие "Onentrydded" - это то, что вы ищете.Я вижу, что этот вопрос был задан более 4 лет назад, так что, возможно, этого события тогда еще не существовало.Я только что обновился до последнего обновления Telerik controls (второй квартал 2014 года).Вот краткий пример.Я удалил свойства, которые мы здесь не обсуждаем, чтобы очистить их, но, очевидно, их нужно будет добавить обратно, если вы не задаете их в коде (напримерDataSourceID).

Исходная страница:

<telerik:RadAutoCompleteBox ID="RadAutoCompleteBox1" runat="server" OnEntryAdded="RadAutoCompleteBox1_EntryAdded" >
</telerik:RadAutoCompleteBox>

Тестовый код (на VB):

   Protected Sub RadAutoCompleteBox1_EntryAdded(sender As Object, e As AutoCompleteEntryEventArgs)
        MsgBox(e.Entry.Text)   'This is just to show you the DataValueField in your dev 
        MsgBox(e.Entry.Value)  'This is just to show you the DataTextField in your dev
        racbCustomer.Entries.Clear()  'This will wipe out the selection(s)
   End Sub
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top