我需要在单击按钮时刷新页面,但我不想增加点击计数器。基本上,该页面有几个网格,所以我只想在单击“刷新”按钮时刷新这些网格数据,但我不想在刷新时增加命中计数器。
问问题
483 次
4 回答
0
使用 AJAX 仅刷新那些网格数据
于 2013-07-22T06:10:02.220 回答
0
您可以使用更新面板。
ASP.NET UpdatePanel 控件使您能够构建丰富的、以客户端为中心的 Web 应用程序。通过使用 UpdatePanel 控件,您可以刷新页面的选定部分,而不是使用回发刷新整个页面。这称为执行部分页面更新。包含 ScriptManager 控件和一个或多个 UpdatePanel 控件的 ASP.NET 网页可以自动参与部分页面更新,而无需自定义客户端脚本。
http://msdn.microsoft.com/en-us/library/bb399001(v=vs.100).aspx
于 2013-07-22T06:14:33.733 回答
0
您可以使用以下任一方法来实现它:
- 使用 AJAX 从客户端到服务器的异步调用
- 使用诸如signalR或 Websockets 之类的东西。SignalR 将在可用时利用 websockets,然后回退到许多其他技术来实现相同的目标。
于 2013-07-22T06:13:09.457 回答
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"));
}
}
}
}
于 2018-08-05T20:21:04.987 回答