الإكمال التلقائي المنسدلة مع Linkbuttons - أو "اياكس ذهب البرية"

StackOverflow https://stackoverflow.com/questions/40422

  •  09-06-2019
  •  | 
  •  

سؤال

حسنا, لذلك أريد الإكمال التلقائي المنسدلة مع linkbuttons كما التحديدات.إذن المستخدم يضع المؤشر في "مربع نص" و هو greated مع قائمة من الخيارات.أنها يمكن أن ابدأ الكتابة لتضييق القائمة ، أو اختر واحدة من الخيارات في القائمة.في أقرب وقت لأنها انقر فوق (أو اضغط على enter) dataset هذا مرتبط سيتم تصفية حسب التحديد.

حسنا, هل هذا سهلا كما يلف AJAX "الإكمال التلقائي" حول المنسدلة?لا ؟ (من فضلك؟)

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

المحلول

هذه القطعة يمكن أن تكون مصنوعة من ثلاثة بنود:إدخال نص ، زر الإدخال ، قائمة غير مرتبة لعقد النتائج.

 __________  _
|__________||v|__             <-- text and button
  |              |            <-- ul (styled to appear relative to text input)
  |              |
  |              |
  |______________|

ul تظهر على:

  • 'keyUp' حالة إدخال النص (إذا كان قيمة غير فارغة)
  • 'انقر فوق' الحدث زر الإدخال (أنا حاليا غير مرئية)

ul خفية على:

  • 'انقر فوق' الحدث زر الإدخال (إذا مرئية حاليا)
  • 'انقر فوق' الحدث من عناصر القائمة

عندما ul يظهر أو keyUp' حالة إدخال النص هو تسبب في اياكس الاتصال إلى الملقم يجب أن يتم تحديث القائمة.

على نجاح النتائج ينبغي أن توضع في ul.عند إنشاء قائمة العناصر التي يجب أن يكون 'انقر فوق' الحدث تعلق عليها أن تحدد النص قيمة المدخلات و يخفي ul (قد تضطر إلى إضافة وصلة داخل لي أن نعلق الحدث).

الجزء الأصعب هو حقا CSS.جافا سكريبت بسيط خصوصا مع مكتبة الصلبة مثل النموذج الذي يدعم العديد من المتصفحات.

ربما كنت سوف ترغب في دعم بعض معرفات البنود ، بحيث يمكنك إضافة بعض المخفية المدخلات إلى كل عنصر من عناصر القائمة مع معرف بجانب إدخال النص إلى تخزين العناصر المحددة الهوية.

نصائح أخرى

سيكون لديك للتعامل مع OnSelectedIndexChanged الحدث من القائمة المنسدلة إلى ربط مجموعة البيانات الخاصة بك على أساس للمستخدمين اختيار.إذا كنت تريد تصفية يحدث في asynch إعادة النشر ، والتفاف بيانات (أو datagrid أفترض) من القائمة المنسدلة في UpdatePanel.هذا هو طريقة واحدة للقيام بذلك على أية حال.

أنا لست متأكدا تماما ما تريد ، ولكن را-اياكس AutoCompleter بالتأكيد دعم وجود "ضوابط" داخل نفسه.يمكنك أن ترى أن في مربع البحث في مكدسة في الواقع (الزاوية اليمنى العليا) حيث نقوم باستخدام الروابط.ولكن هذا يمكن أن يكون أيضا LinkButtons إذا كنت ترغب في ذلك...

تنويه ؛ أنا أعمل مع Ra-اياكس...

في رأيي لا يجب استخدام اياكس هذا على الإطلاق.

هنا لماذا:

(1) التركيز:جميع الخيارات التي كان يمكن تحديد تظهر في القائمة المنسدلة.وهذا يعني أن جميع الخيارات الممكنة هي بالفعل إرسالها إلى العميل.

(2) إذا كان المستخدم أنواع شيئا في عدد الإدخالات في القائمة المنسدلة يتم تصفيتها وصولا إلى المباراة.هذا يمكن بسهولة أن يتم ذلك على جانب العميل.يجري اياكس'y والذهاب مرة أخرى إلى الخادم في هذه النقطة فقط إبطاء الأمور.

phpguru.org وقد التحكم الذي هو بالضبط تقريبا ما تحتاج:

http://www.phpguru.org/static/AutoComplete.html#demo

وهو يختلف قليلا من ما تحتاجه في أنه يظهر في القائمة المنسدلة على انقر نقرا مزدوجا فوق بدلا من التركيز.وينبغي أن يكون من السهل إلى حد ما تعديل.

آمل أن يساعد هذا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top