تعطيل ADBLOCK

يمنع ADBlock بعض المحتوى على الموقع

ADBlock errore

كيف أقوم بتحديث الصفحة في ASP.NET؟ (وليكن تحميل نفسه من خلال التعليمات البرمجية)

StackOverflow https://stackoverflow.com/questions/1206507
  •   asp.net
  •  | 
  •  
  •  | 
  •   ( words)

سؤال

وكيف يمكنني تحديث صفحة في ASP.NET؟ (وليكن تحميل نفسه عن طريق كود)

وأنا أفضل عدم استخدام Response.Redirect () لأنني لا أعرف إذا كانت الصفحة سوف أكون على، كما انها داخل عنصر تحكم المستخدم داخل جزء الويب داخل شير.

المحلول

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

setTimeout("location.reload(true);", timeout);

والثاني هو علامة التعريف:

<meta http-equiv="refresh" content="600">

ويمكنك تعيين فترات التحديث على جانب الملقم.

نصائح أخرى

في عناصر تحكم المستخدم الخاص بي، بعد تحديث البيانات أفعل:

  Response.Redirect(Request.RawUrl);    

وهذا يضمن أن يتم إعادة تحميل الصفحة، وأنه يعمل بشكل جيد من عنصر تحكم المستخدم. يمكنك استخدام RawURL وليس Request.Url.AbsoluteUri للحفاظ على أية معلمات GET التي يمكن إدراجها في الطلب.

وربما كنت لا تريد استخدام: __doPostBack، لأن العديد من الصفحات ASPX تتصرف بشكل مختلف عند القيام إعادة النشر

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

ويمكنك استخدام السطر التالي للقيام بذلك:

Server.TransferRequest(Request.Url.AbsolutePath, false);

وحاول تجنب استخدام Response.Redirect كما أنه يزيد من الخطوات في هذه العملية. ما يفعله هو في الواقع:

<رأ>
  • ويرسل إلى الخلف صفحة مع رأس إعادة توجيه
  • ومتصفح الموجهات إلى URL الوجهة.

    وكما ترون، فإن النتيجة نفسها تأخذ رحلات 2 بدلا من 1 رحلة.

  • وجرب هذا:

    Response.Redirect(Request.Url.AbsoluteUri);
    

    استخدم جافا سكريبت ل location.reload () طريقة .

    <script type="text/javascript">
      function reloadPage()
      {
        window.location.reload()
      }
    </script>
    

    وهناك طريقة مختلفة لتحديث الصفحة في asp.net مثل ...

    <ب> جافا سكريبت

     function reloadPage()
     {
         window.location.reload()
     }
    

    <ب> كود خلف

    Response.Redirect(Request.RawUrl)
    

    <ب> العلامة الوصفية

    <meta http-equiv="refresh" content="600"></meta>
    

    <ب> الصفحة إعادة توجيه

    Response.Redirect("~/default.aspx"); // Or whatever your page url
    

    إذا كنت لا تريد أن تفعل تحديث صفحة كاملة، ثم كيف حول التفاف على ما تريد لتحديث من داخل UpdatePanel ومن ثم القيام إعادة النشر غير متزامن؟

    وأنا شخصيا بحاجة إلى ضمان الصفحة تحافظ الدولة، لذلك كل مربعات النص وحقول الإدخال الأخرى ظلت تحافظ على قيمها. عن طريق القيام التحديث الفوقية انها مثل وظيفة جديدة، IsPostBack دائما كاذبة لذلك كل الضوابط الخاصة بك في حالة تهيئة مرة أخرى. للاحتفاظ الدولة وضع هذا في نهاية Page_Load الخاص بك (). إنشاء زر مخفي في الصفحة مع الحدث التوصيل، شيء من هذا القبيل butRefresh مع الحدث butRefresh_Click (...). هذا الرمز يحدد توقيت على الصفحة لاطلاق إعادة النشر تماما مثل المستخدم النقر على زر التحديث أنفسهم. يتم الاحتفاظ كل دولة والدورة. استمتع! (ملاحظة، قد تحتاج لوضع التوجيه في EnableEventValidation رأسPage = "كاذبة" إذا كنت تتلقى خطأ على إعادة النشر.

    //tell the browser to post back again in 5 seconds while keeping state of all controls
    ClientScript.RegisterClientScriptBlock(this.GetType(), "refresh", "<script>setTimeout(function(){ " + ClientScript.GetPostBackClientHyperlink(butRefresh, "refresh") + " },5000);</script>");
    

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

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

    ScriptManager.RegisterStartupScript(this, GetType(), "refresh", "window.setTimeout('window.location.reload(true);',5000);", true);
    

    في page_load، إضافة هذا:

    Response.CacheControl = "no-cache";
    Response.AddHeader("Pragma", "no-cache");
    Response.Expires = -1;
    

    Response.Write("<script>window.opener.location.href = window.opener.location.href </script>");
    

    ويمكنك استخدام 2 طرق للحل هذه المشكلة: 1) بعد الكود رئيس

    <head> 
    <meta http-equiv="refresh" content="600">
    </head>
    

    2) إذا صفحتك لم يتوجه علامة يجب استخدام جافا سكريبت لتنفيذ

    <script type="text/javascript">
      function RefreshPage()
      {
        window.location.reload()
      }
    </script>
    

    برنامجي الاتصال:

    http://gola.vn

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

    Response.Write("<script type='text/javascript'> setTimeout('location.reload(true); ', timeout);</script>");
    

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

    Licensed under: CC-BY-SA with attribution
    Not affiliated with StackOverflow