如何刷新页面而不增加点击计数器?

时间:2013-07-22 06:04:34

标签: c# asp.net

我需要在点击按钮时刷新页面,但我不想增加点击计数器。基本上,该页面有几个网格,所以我只想在单击“刷新”按钮时刷新这些网格数据,但我不想在刷新时增加点击计数器。

4 个答案:

答案 0 :(得分:0)

使用AJAX仅刷新那些网格数据

答案 1 :(得分:0)

您可以使用以下任一方法实现:

  • 使用AJAX从客户端到服务器的异步调用
  • 使用signalR或Websockets之类的东西。 SignalR将在可用时利用websockets,然后再采用其他一些技术来实现同样的目标。

答案 2 :(得分:0)

您可以使用UpdatePanel。

ASP.NET UpdatePanel控件使您能够构建以客户端为中心的丰富Web应用程序。通过使用UpdatePanel控件,您可以刷新页面的选定部分,而不是使用回发刷新整个页面。这被称为执行部分页面更新。包含ScriptManager控件和一个或多个UpdatePanel控件的ASP.NET网页可以自动参与部分页面更新,而无需自定义客户端脚本。

http://msdn.microsoft.com/en-us/library/bb399001(v=vs.100).aspx

答案 3 :(得分:0)

首先创建一个长期存储页面:如下所示的counter.xml。

<?xml version="1.0" standalone="yes"?>
    <counter>
      <count>
        <hits>0</hits>
      </count>
    </counter>

然后打开Global.asax.cs并添加以下内容。

using System;
using System.Data;
using System.Web;
using System.Web.Optimization;
using System.Web.Routing;

namespace YOURNAMESPACE
{
public class Global : HttpApplication
    {
        //1. Create a lock and a DataSet object.
        private static readonly Object lockObj = new object();
        private static DataSet dataSet = new DataSet();

        void Application_Start(object sender, EventArgs e)
        {
            // Code that runs on application startup

            //2. Read counter.xml into the dataSet any time the  
            //application is started. Here counter.xml is in the Application root.
            dataSet.ReadXml(Server.MapPath("~/counter.xml"));

            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }

将Session_Start处理程序添加到该类。 Session_Start仅在创建新会话时运行,而不在刷新页面时运行。

        void Session_Start(object sender, EventArgs e)
        {
            //3. Lock the dataSet to prevent synchronization issues.  
            lock (lockObj)
            {
                //4. Increment hits in the dataSet.
                dataSet.Tables[0].Rows[0]["hits"] = 1 + int.Parse(dataSet.Tables[0].Rows[0]["hits"].ToString());
                //5. Write the new value to the long-term storage, counter.xml
                dataSet.WriteXml(Server.MapPath("~/counter.xml"));
            }
        }
    }
}