كيفية الإكمال التلقائي في ASPX مع طلب الصفحة الأصلي فقط؟

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

سؤال

ونحن نعمل على تطوير الصفحة لASPX (.NET 2.0) يتضمن قائمة مختارة مع عدد كبير جدا من العناصر في ذلك (200 +).

ونحن بحاجة الى بعض شكل الإكمال التلقائي لجعل هذا إلى شيء يتصرف مثل مربع نص، ولكن مع اقتراحات autocompelte.

ونود أن استخدام مسج. حتى الآن لدينا بحث تحولت فقط حتى الإكمال التلقائي التي تتطلب نوعا من الخدمة النهاية الخلفية، طلبات إضافية (في AJAX) الخ .. ونحن نفضل لتقديم جميع البيانات في وقت واحد مع طلب الصفحة. ومن الناحية المثالية فإنه سيكون على النحو تحديد إدخالات القائمة.

هل هناك صناديق الإكمال التلقائي التي تحول قائمة مختارة؟ أو هل هناك طريقة لسلك والإكمال التلقائي لبيانات بالفعل على الصفحة (في ASPX مع الصافي 2.0) بحيث أنه لن يكون الوصول إلى الموارد الخارجية؟

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

وتحرير 2: الصفحة يجب أن تتحلل بأمان. العديد من الحلول هناك "حقن" المحتوى، بحيث جافا سكريبت بدونك لا تحصل على أي محتوى. قد يكون 200+ الخيارات، ولكن على الأقل أنها موجودة هناك. هذا هو السبب في تحويل قائمة مختارة هو قدوتنا.

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

المحلول

واستخدم مسج الإكمال التلقائي المساعد كما اقترح ستيف Willcock. إخراج منتظم حدد مربع، ثم في السيناريو الخاص بك يحل محله مع النص وتهيئة البرنامج المساعد مع مجموعة التي تقوم ببناء ما إذا كان خيار العناصر. حتى البيانات الخاصة بك يأتي في باعتباره select:

<select size="1" id="options" name="options">
  <option>Option #1</option>
  <option>Option #2</option>
  <option>Option #3</option>
  <option>Option #4</option>
  <option>Option #5</option>
  <option>Option #6</option>
  <option>Option #7</option>
</select>

و... وأنت تحويلها مثل ذلك:

$(function(){
  // execute once the DOM is ready...

  // build array of option texts
  var options = [];
  $("#options option").each(function(){
    options.push($(this).text());
  });

  // build an input field, replace the select with it,
  // and wire up autocomplete.
  $("<input id='options' name='options' type='text'>")
    .replaceAll("#options")
    .autocomplete(options, {autoFill: true});  
});

و... لا JS؟ لا مشكلة - لا يزال لديك select بك

.

نصائح أخرى

http://docs.jquery.com/Plugins/Autocomplete/autocomplete#url_or_dataoptions

والبرنامج المساعد مسج autcomplete يمكن أن البيانات كما صفيف. في حالة إنشاء مجموعة في شبيبة تشمل الملفات التي يجب أن تلائم الاحتياجات الخاصة بك.

لمثال، نلقي نظرة على الصفحة عرض - التحقق من "متعددة قسم "، وملف localdata.js التي يتم استخدامها هناك مدن (المحلية).

وهناك عدد من الضوابط طرف ثالث (نستخدم واحدة من أدوات في WebUI ComponentArt) والتي سوف تعطيك وظيفة منسدل الإكمال التلقائي.

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

وكانت الإجابات هنا مفيدة جدا، ولكن وجدنا هذا البرنامج المساعد بعد مزيد من البحث الذي يعمل تلقائيا مباشرة على قائمة مختارة:

ومثير كومبو: http://code.google.com/p/sexy-combo /

وصفحة عرض توضيحي: http://phone.witamean.net/sexy- السرد / أمثلة / index.html و

وهذا سيتطلب أقل قليلا العمل.

وكنت أرغب في توثيق هذا للإشارة الآخرين. شكرا لكم جميعا للمساعدة.

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