كيف يمكنني تحديث للصفحة في ASP.NET?(وليكن تحديث نفسها من خلال رمز)

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

  •  05-07-2019
  •  | 
  •  

سؤال

كيف يمكنني تحديث للصفحة في ASP.NET?(وليكن تحديث نفسها من خلال رمز)

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

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

المحلول

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

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 كما أنه يزيد من الخطوات في هذه العملية.ما تفعله في الواقع هو:

  1. يرسل الصفحة مع توجيه رأس
  2. المتصفح عمليات إعادة التوجيه إلى عنوان URL المقصود.

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

وجرب هذا:

Response.Redirect(Request.Url.AbsoluteUri);

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

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

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

Java Script

 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>");

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

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