سؤال

أنا أقدم تطبيق .NET ASP مع رمز VB وراء. لدي 2 مربعات النص و 1 زر. الزر عند النقر عليه، يستخدم JavaScript لفتح نافذة جديدة (دعونا استدعاء النافذة الجديدة X).

giveacodicetagpre.

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

المشكلة هي أنه إذا قمت بتحرير أي من قيم TextBox مثل تغيير 3 إلى 4، فانقر على الفور، دون النقر فوق مربع النص أولا، ثم لا يتم التقاط القيم الجديدة، لذلك ما زلت أحصل على 3. حاولت 3 لإجبار عملية إعادة النشر عند النقر فوق الزر التالي:

giveacodicetagpre.

وعلى الرغم من أن هذا يتسبب في إعادة النشر، فإن عملية إعادة النشر لا تكتمل حتى أغلق النافذة التي يتم فتحها بسبب وظيفة ShowWindowsx.

هل يمكن لأي شخص أن ينصح بطريقة لإجبار عملية إعادة النشر بالكامل قبل تنفيذ دالة ShowWindowx () بحيث يمكن إحضار القيم الجديدة؟

شكرا مقدما

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

المحلول

يجب عليك تغيير نهجك تماما، بقدر ما لا تكون مكالمة ajax، فمن المقدم كل شيء على الصفحة، وستحصل الصفحة على التحديث.

إذن ما الذي يمكن القيام به من أجل تحقيق ذلك؟يمكنك التحقق من ذلك في الخلفية وإضافة البرنامج النصي إذا تم تحميل الصفحة في مكالمة إعادة النشر، مثل هذا:

giveacodicetagpre.

بالطبع يمكن القيام به إذا قمت بالفعل بتسجيل البرنامج النصي الذي يتم تعريفه في ذلك.

ولكن إذا كنت لا ترغب في إظهار النافذة في كل مرة تحدث فيها النشر، فيمكنك تعيين علامة في تخزين عالمي مثل LocalStorage، ثم التحقق من ذلك عندما تريد فتح النافذة:

giveacodicetagpre.

وفي تحميل الصفحة الجانبية الخادم القيام بذلك:

giveacodicetagpre.

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