سؤال

وأنا آمل في عداد المفقودين شيء واضح للغاية هنا، ولكن لحياة لي لا أستطيع أن هذا الرقم.

ولدي عنصر تحكم AutoCompleteBox أن باسترداد النتائج عن طريق استدعاء غير متزامن، على الرغم من أنني لا يمكن أن تجد وسيلة يمكن الاعتماد عليها في أي لمعرفة متى اختارت مستخدم خيارا من قائمة القيم التي تم إرجاعها. لقد حاولت تعليقها في حالة SelectionChanged، إلا أن الحرائق على كل حركة داخل قطرة الإكمال التلقائي في أسفل قائمة، في حين أن ما أريد فعلا أن نعرفه هو عندما مستخدم وقال بشكل قاطع "مهلا، هذا هو البند أريد!" إما عن طريق النقر عليه، أو تحديده مع مفتاح العودة.

وأي نصيحة سيكون موضع تقدير كبير لأن هذا هو بداية لتدفع لي صبي مجنون الآن. =)

والشكر

وP.S. توفر الحجج الحدث SelectionChanged AddedItems وRemovedItems، ولكن لا تعطي أي إشارة مباشرة من نوع الاختيار أنا أبحث عن.

هل كانت مفيدة؟

المحلول

وليس هناك حدث معين يشير إلى أن استخدامها وقطنية على وجه التحديد عن خيار بدلا من مجرد التصفح.

للك السيناريو الأقرب يمكنك الحصول عليه هو DropDownClosed أو حتى الأحداث LostFocus ثم الوصول إلى الملكية SelectedItem.

نصائح أخرى

إذا كنت تستخدم Telerik AutoCompleteBox، وربما "OnEntryAdded" الحدث هو ما كنت أبحث عنه. أرى سئل هذا السؤال قبل أكثر من 4 سنوات وربما لذلك فإن هذا الحدث غير موجودة في ذلك الوقت. أنا فقط تحديث لآخر تحديث الضوابط Telerik (2014 Q2). وإليك مثال سريع. أزلت الخصائص التي نحن لا نناقش هنا لتنظيفه ولكن، من الواضح، وتلك سوف تحتاج إلى أن تضاف مرة أخرى في ما لم تعين عليها في التعليمات البرمجية (على سبيل المثال 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