如何在 c# 中保持 Jqgrid 的状态
本文关键字:Jqgrid 状态 | 更新日期: 2024-10-31 17:13:13
我在MainPage.aspx中有i jqgrid,我从JSON页面(page JsonSource.aspx)获取数据。此 JSON 页从数据表中获取数据。我想在页面 A 中获取此数据表(我不想再次从数据库中获取数据)。
这是主页.aspx:
jQuery("#jQGridDemo").jqGrid({
url: 'http:///JsonSource.aspx',
datatype: "json",
在 JsonSource.aspx:
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = InitDataSource();
string json = ConvertDataTabletoString(dt);
////context.Response.Write(json);
Response.Clear();
Response.ContentType = "application/json; charset=utf-8";
Response.Write(json);
Response.End();
}
如果这是不可能的,你能给我另一个解决方案吗?我的数据很大,我只想得到它 1
您可以在此处至少使用3种方法。缓存,会话甚至cookie(不可行)。
缓存将是最好的选择,因为数据没有绑定到特定用户或给定的会话。
正如@Zaki评论中提到的,您可以在 x 分钟后使缓存失效,然后在必要时重新加载。
简单的缓存处理:
public static readonly ObjectCache cache = MemoryCache.Default; // this would be an instance variable
public void AddToCache<T>(string key, T item)
{
cache.Add(key, item, DateTime.Now.AddMinutes(CACHE_TIMEOUT));
}
public T GetFromCache<T>(string key) where T : class
{
try
{
return (T)cache[key];
}
catch
{
return null;
}
}
简单的会话处理:
Session["MyData"] = json; // set data to session variable MyData
string jsonData = Session["MyData"]; // get the data.
但是,您应该进行一些检查以使其更加强大。