سؤال

ما هي أفضل طريقة للتعامل مع الحالة التي يكون فيها لديك ASP.Net دروبدوونليست التي تستخدم لتصل إلى URL آخر

تحرير لوضوح

إليك السيناريو الأساسي:

ودروبدوونليست مع 5 مدن المنضم إليه

ويجب اختيار واحدة من المدن ترسلني إلى URL استنادا إلى المدينة

والآن أنا على نشر الظهر باستخدام "OnSelectedIndexChanged" الحدث ثم معالجة الحدث وإعادة توجيه إلى الصفحة المناسبة.

ولكن هذا يسبب 2 الزيارات إلى الخادم في المدينة المختارة، 1 لمعالجة إعادة النشر وإعادة توجيه، ثم آخر لجعل الصفحة الفعلية.

هل استخدام جافا سكريبت مخصصة لبناء URL الخيار الأفضل لي؟

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

المحلول

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

<asp:DropDownList ID="ddl" runat="server"
  onchange="document.location.href = this.value;" >
    <asp:ListItem Text="a" Value="http://url1"></asp:ListItem>
    <asp:ListItem Text="b" Value="http://url2"></asp:ListItem>
    <asp:ListItem Text="c" Value="http://url3"></asp:ListItem>
    <asp:ListItem Text="d" Value="http://url4"></asp:ListItem>
</asp:DropDownList>

نصائح أخرى

وتعيين autopostback إلى false، وهذا إضافة إلى الحدث onchange العميل (على افتراض قيمة وعنوان URL بأكمله، إن لم يكن، تعديل حسب الاقتضاء):

window.navigate(this.options[this.selectedIndex].value);

وأنا فقط أتساءل، لماذا لا جلب معلومات المدينة عبر أجاكس (هناك العديد من الدروس الفيديو على www.asp. صافي / تعلم ) وتظهر للمستخدم المعلومات مدينة بدلا من إنشاء أخرى أكثر قفزة الصفحة؟

وأنها ليست سوى فكرة، فكرة الويب 2.0:)

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

عادة، وأود أن نتفق، ولكن هناك احتياجات لديك URL ملموسة لكل صفحة + تجديد أجزاء أخرى من الصفحة على ضرب URL كذلك.

وشكرا للاقتراحات على الرغم من!

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