سؤال

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

ومشكلتي الحالية أنني كلفت الآن مع القيام أساسا نفس الشيء حيث الأعمدة ستكون مختلفة استنادا إلى قائمة منسدلة (I سوف إعادة GridView إذا كانت التغييرات DDL، وسوف يفقد المستخدمون عن العمل مع تحذير). كيف يمكنني الحصول على ID الذي تم تحديده في القائمة المنسدلة في الحدث OnInit؟ ما أفهمه هو أنه عندما يقوم المستخدم بتغيير قيمة DDL على جانب العميل يتم تشغيل جافا سكريبت "__doPostBack" المكالمة. ثم يتم إرسال طلب صفحة إلى ملقم ولكن بحلول الوقت قيمة جديدة غير موجودة في معالج الأحداث أنا الماضي نقطة حيث كنت بحاجة إلى إضافة الأعمدة.

ورأيت شيئا أعتقد أنه كان واعدا عندما كان الناس يحاولون تحديد ما تحكم تسبب في ما بعد الظهر ولكن يعتمد هذا الرمز على page.Request.Params.Get ( "__ EVENTTARGET")؛ وpage.Request.Form التي تكون فارغة.

هل يجب أن ننظر إلى حالة جلسة العمل، في محاولة ل'أرسل "معرف باستخدام التلاعب جانب العميل، أو بعض وسيلة أخرى (وربما وسيلة متستر للنظر في حالة العرض أنا في عداد المفقودين)؟

وشكرا لأية أفكار!

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

المحلول

والقيمة المقدمة عنصر تحكم هو متاح من طلب [] جمع حتى لو كان يبدو أن النموذج الخاص بك لم يتم بناؤها بعد.

ويجب عليك ببساطة أن تكون قادرة على الحصول على القيمة المحددة خلال التهيئة () باستخدام ما يلي:

string value = Request["myDropDownID"];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top