繁体   English   中英

单击按钮刷新asp.net页面

[英]Refresh an asp.net page on button click

我需要在按钮点击时刷新页面而不增加点击计数器。

在代码背后重定向到同一页面。

Response.Redirect(Request.RawUrl);
  • 为维护点击计数器创建一个类

     public static class Counter { private static long hit; public static void HitCounter() { hit++; } public static long GetCounter() { return hit; } } 
  • 在页面加载事件时递增计数器的值

     protected void Page_Load(object sender, EventArgs e) { Counter.HitCounter(); // call static function of static class Counter to increment the counter value } 
  • 将页面重定向到自身并在按钮单击时显示计数器值

     protected void Button1_Click(object sender, EventArgs e) { Response.Write(Request.RawUrl.ToString()); // redirect on itself Response.Write("<br /> Counter =" + Counter.GetCounter() ); // display counter value } 

您可以执行Response.redirect("YourPage",false) ,它将刷新您的页面并增加计数器。

单击按钮,您可以尝试以下操作。

protected void button1_Click(object sender, EventArgs e)
{
     Response.Redirect("~/Admin/Admin.aspx");
}

在PageLoad上,您可以检查加载是否来自该按钮,然后增加计数。

       protected void Page_Load(object sender, EventArgs e)
         {
            StackTrace stackTrace = new StackTrace();
            string eventName = stackTrace.GetFrame(1).GetMethod().Name; // this will the event name.
            if (eventName == "button1_Click")
              {
                // code to increase the count;
              }
          }

谢谢

当您说刷新页面时,它正在创建的页面的新实例,因此您需要具有static variable/session variable或存储和检索页面上的点击计数的method

就刷新页面而言, Response.Redirect(Request.RawUrl); window.location=window.location将为您完成工作。

页面重新加载可以使用javascript代码完成。 使用HTML按钮并实现它...

<input type="button" value="Reload Page" onClick="document.location.reload(true)">

  XmlDocument doc = new XmlDocument(); doc.Load(@"F:\\dji\\A18rad\\A18rad\\XMLFile1.xml"); List<vreme> vreme = new List<vreme>(); string grad = Request.Form["grad"]; foreach (XmlNode cvor in doc.SelectNodes("/vreme/Prognoza")) { if (grad == cvor["NazivMesta"].InnerText) vreme.Add(new vreme { mesto = cvor["NazivMesta"].InnerText, maxtemp = cvor["MaxTemperatura"].InnerText, mintemp = cvor["MinTemperatura"].InnerText, vremee = cvor["Vreme"].InnerText }); } return View(vreme); } public ActionResult maxtemperature() { XmlDocument doc = new XmlDocument(); doc.Load(@"F:\\dji\\A18rad\\A18rad\\XMLFile1.xml"); List<vreme> vreme = new List<vreme>(); foreach (XmlNode cvor in doc.SelectNodes("/vreme/Prognoza")) { vreme.Add(new vreme { mesto = cvor["NazivMesta"].InnerText, maxtemp = cvor["MaxTemperatura"].InnerText }); } return View(vreme); } } } @*@{ ViewBag.Title = "maxtemperature"; } @Html.ActionLink("Vreme Po izboru","index","home") <h2>maxtemperature</h2> <table border="10"> <tr><th>Mesto</th> <th>MaxTemp</th> </tr> @foreach (A18rad.Models.vreme vr in Model) { <tr> <td>@vr.mesto</td> <td>@vr.maxtemp</td> </tr> } </table>*@ @*@{ ViewBag.Title = "Index"; } @Html.ActionLink("MaxTemperature","maxtemperature","home") @using(Html.BeginForm("Index","Home")){ <h2>Index</h2> <span>Grad:</span><select name="grad"> <option value="Nis">Nis</option> <option value="Beograd">Beograd</option> <option value="Kopaonik">Kopaonik</option> </select> <input type="submit" value="Moze" /><br /> foreach (A18rad.Models.vreme vr in Model) { <span>Min temperatura:</span> @vr.mintemp<br /> <span>Max temperatura:</span> @vr.maxtemp<br /> if(vr.vremee =="Kisa"){ <span>Vreme:</span> <img src ="kisa.jpg" /> } else if(vr.vremee =="Sneg"){ <img src="sneg.jpg" /> } else if (vr.vremee == "Vedro") { <img src ="vedro.png" /><br /> } } }*@ 

在按钮单击事件中添加一个唯一会话或cookie,然后使用Request.RawUrl在同一URL上重定向页面现在在Page_Load事件中添加代码以获取该会话或coockie。 如果session / cookie匹配,那么您可以使用刷新按钮知道该页面被重定向。 因此,将点击计数器减1以保持相同的数字hitcountr - = hitconter

否则增加点击计数器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM