سؤال

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

ويمكن لأي شخص أن يساعدني؟

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

المحلول

ومشتق معرف العميل من التحكم من ID من كافة عناصر التحكم التي تحتوي التي تم وضع علامة مع في INamingContainer اجهة. لذلك، تأكد من أن جميع عناصر التحكم في التسلسل الهرمي لديها ID ثابت.

وعلى سبيل المثال إذا كان لديك عنصر تحكم زر داخل مكرر، معرف زر ومكرر ومتصلا لجعل ID العميل للزر. لذا يجب أن يكون كل من الإرسال والزر نفس ID عبر إعادات النشر.

ويمكنك مقارنة HTML للطلب الأول مع HTML من الطلب الثاني لتحديد ما إذا كانت هذه هي المشكلة.

نصائح أخرى

ويبدو وكأنه مقرنة إلى زر الحدث OnClick لا يحدث في كل تحميل الصفحة، والذي هو مطلوب.

هل تضمنون أن مقرنة يتم تنفيذ عند إضافة عنصر التحكم وبعد poastback إلى الصفحة؟ أنا دائما أضع السنانير الحدث في Page_Init أو Page_Load معالجات الأحداث وخارج أي الاختيار إعادة النشر. محاولة وضع نقطة توقف على معالج عقف ومعرفة ما إذا كان توقف يحصل على "ضرب" مرتين.

وهناك مقرنة الحدث لزر سيكون مشابها:

protected void Page_Load(object sender, EventArgs e)
{
    btnSearch.Click += new EventHandler(btnSearch_Click); // breakpoint on this line
}

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

هل تنتظر التحميل من صفحة كاملة قبل الضغط على زر؟

والأحداث هي وظائف جافا سكريبت خبأتها ASP.Net في الصفحة، التي ربما لم تكن موجودة في ذلك الوقت من النقر الخاص بك.

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