هل يمكنني معرفة أي سيطرة على الأحداث واطلاق النار على إعادة النشر ASP؟

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

  •  04-07-2019
  •  | 
  •  

سؤال

هل من الممكن الحصول على قائمة مراقبة الأحداث التي تجري لاطلاق النار قبل وقوعها، ويقول داخل معالج Page_Load؟

وعلى سبيل المثال إذا كان قد تم اختيار زر يمكنني معرفة ذلك قبل أن يتم استدعاء معالج الحدث button_click؟

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

المحلول

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

1) __EVENTTARGET (كما ذكر أعلاه) 2) إذا كان اسم الزر الخاص بك هو MyButt، ثم سترى "MyButt =" في سلسلة الاستعلام. 3) عندما يتحقق كل عنصر تحكم (مثل مربع نص على سبيل المثال) على طلب لمعرفة ما اذا كان القيمة في حالة العرض يختلف عن نشرها، ثم "Text_Changed" سوف النار.

ولكن، يمكنك استخدام # 1 و # 2 للتحقق من عدد قليل من الأماكن.

نصائح أخرى

ومما يؤسف له، استجواب قيمة __EVENTTARGET لن تفعل خدعة. في كثير من الأحيان، وسوف تكون هذه القيمة فارغة. معالجة إعادة النشر يجعل بعض القرارات حول ما هي الأحداث لرفع بناء على أكثر من مجرد القيمة المستهدفة الحدث (إن وجدت) قيم الدولة السيطرة اختبار ضد القيم المرسلة بواسطة النموذج (مثل لمربع النص) يحدد ما إذا كانت الأحداث مثل TextChanged ينبغي رفع .

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

ما هو هدفك في هذا؟ ربما هناك حل أفضل.

وفيما يلي يحتوي على معرف المهترئ عن زر عند النقر عليها.

Page.Request.Form["__EVENTTARGET"]

هنا مثال والتي أعتقد إجاباتك المسألة.

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

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