انقر على زر ASP.Net


للحصول على زر في صفحة asp.net، أحتاج إلى النقر عليه في المرة الثانية لإطلاق حدث النقر على الزر. أعتقد أن بعض الإعدادات قد لا تكون صحيحة. كيف يمكن إجراء نقرة واحدة فقط لبدء الحدث؟ شكرًا.

الحل 1

يبدو أن هذه مشكلة شائعة جدًا حيث يتم تشغيل طريقة معالج الأحداث مرتين.

يحدث ذلك بسبب إدخال VS.NET 2 wireup of the event handler:

– مرة واحدة في ملف aspx (HTML) على سبيل المثال: <asp:button ...="" onclick="btnTest_Click" xmlns:asp="#unknown" />

– ومرة ​​واحدة في القسم الذي تم إنشاؤه VS.NET (InitializeComponent) على سبيل المثال:
this.btnTest.Click += new System.EventHandler(this.btnTest_Click);

الحل الأسهل، imo، هو إزالة علامة HTML “OnClick…” من صفحة .aspx.

على سبيل المثال تغيير هذا:
<asp:button id="btnTest" runat="server" text="Test" onclick="btnTest_Click" xmlns:asp="#unknown" />

الى هذا:
<asp:button id="btnTest" runat="server" text="Test" xmlns:asp="#unknown" />

إعادة البناء، والبنغو! – حدث واحد لكل نقرة.

ممزق من هنا[^]

-KR

الحل 2

راجع تعليقي بتاريخ 14 مارس 2014:
قد تكون المشكلة بسبب عنصر تحكم آخر (على سبيل المثال، مربع نص). لأي سبب من الأسباب، لا بد لي من النقر قبل النقر على الزر. للتخلص من هذه المشكلة، قمت بمراجعة الكود الذي يقوم بتشغيل textbox_TextChanged(). ثم، النقر على الزر لا يحتاج إلى القيام مرتين بعد الآن. شكرا لجميع المراجعين.
شكرا للمراجعين، وخاصة. لأولئك الذين قدموا تعليقات أو حلول.

الحل 3

إذا كنت تستخدم متغير ID دون تهيئة، فقد يكون هذا مصدر الخطأ.

الحل 4

يقتبس:

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

コメント

タイトルとURLをコピーしました