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

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

سؤال

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

هل يعرف أحد ما الذي أفتقده؟

يحرر: لقد أدخلت حلاً أفضل في الأسفل

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

المحلول 5

وبعد عدة أشهر تم إصلاح هذه المشكلة.كان المشروع الذي كنت أعمل فيه هو الإصدار v1.1 السابق والذي تم تحويله باستخدام الإصدار 2.0.ومع ذلك، في web.config بقي هذا السطر:

<xhtmlConformance mode="Legacy"/>

عندما تم التعليق عليه، اختفت جميع الأخطاء التي بدا أننا نواجهها في مجموعة أدوات التحكم في Ajax

نصائح أخرى

تأكد من أن لديك المجموعة التالية في UpdatePanel:ChildrenAsTriggers=false وUpdateMode=Conditional

هل لديك ChildrenAsTriggers="false" في UpdatePanel؟

هل هناك أي أخطاء في جافا سكريبت على الصفحة؟

واجهتني هذه المشكلة وقرأت المقال التالي:

http://bloggingabout.net/blogs/rick/archive/2008/04/02/linkbutton-inside-updatepanel-results-in-full-postback-updatepanel-not-triggered.aspx

لم يتم إنشاء الزر الخاص بي ديناميكيًا في الكود كما في هذا المثال، ولكن عندما تحققت من الكود في aspx تأكدت من أنه كان يفتقد خاصية معرف.عند إضافة المعرف، أصبح إعادة النشر غير متزامن وبدأ يتصرف كما هو متوقع.

لذا، باختصار، تأكد من أن الزر الخاص بك يحتوي على معرف!

هل تختبر في Firefox أو IE؟لدينا مشكلة مماثلة حيث يتم تحديث الصفحة بأكملها في Firefox (ولكن ليس في IE).للتغلب على هذه المشكلة، نستخدم زر asp: مخفيًا مع مجموعة useSubmitBehavior="false".

<asp:Button ID="btnRefresh" runat="server" OnClick="btnRefresh_Click" Style="display: none" UseSubmitBehavior="false" />

هل ظهرت نافذة Modal باستخدام نافذة IE Modal؟أم أنها DIV التي تعرضها؟

إذا كانت نافذة IE Modal Pop up، فأنت بحاجة إلى التأكد من حصولك عليها

   <base target="_self" /> 

للتأكد من أن النشر مرة أخرى موجود في الصفحة المشروطة.

إذا كان DIV، فتأكد من صحة XHTML وإلا فقد لا يعرف ما الذي يجب تحديثه.

سأترك onClick وأقوم بتعيينه كمشغل لـ updatePanel.

من الغريب أنه يعمل في FF وليس في IE.وهذا عكس السلوك الذي نختبره.

يمكن أن تكون UpdatePanels حساسة لملفات HTML المشوهة.قم بإجراء عرض المصدر من متصفحك وقم بتشغيله من خلال شيء مثل مدقق W3C للبحث عن أي شيء غريب (الجدول أو div غير المغلق هو المشتبه بهم المعتادون)

إذا كنت تستخدم Firefox، فهناك ملحق/AddOn للتحقق من HTML متاح والذي يعمل بشكل جيد جدًا.

كمرجع..

لقد لاحظت أيضًا أنه عند استخدام اللعين <asp:UpdatePanel ... /> و <asp:LinkButton ... />, ، ذلك كذلك UpdateMode="Conditional" على ال UpdatePanel التغييرات الأخرى التالية مطلوبة:

  • ViewStateMode="Enabled" مطلوب على <asp:Content ... /> (لقد قمت بتعيينه على Disabled في ال MasterPage)
  • ClientIDMode="Static" كان لا بد من إزالتها من <%@ Page ... />

لمنع عمليات النشر، قم بإضافة return false إلى حدث onclick.

Button.attribute.add("onclick"،"return false;");

عينة:

string PopupURL = Common.GetAppPopupPath() + "Popups/StockChart.aspx?s=" + symbol;
hlLargeChart.Attributes.Add("onclick", String.Format("ShowPopupStdControls(PCStockChartWindow,'{0}');return false;", PopupURL));
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top