【问题标题】:DataTable Jquery and bStateSaveDataTable Jquery 和 bStateSave
【发布时间】:2013-09-17 10:00:03
【问题描述】:

我正在使用库 JQuery 进行 Tapestry 项目。

我使用 jquery/datatable 来显示我的对象。 我想将搜索保存在数据表中,因此我将布尔值 bStateSave 设置为 true。 它可以工作,但经过几次测试后,我得到一个空白页面,我必须清除缓存才能让应用程序再次工作。

选项是:

public JSONObject getOptions() {      
    String option = "{ aaSorting: [[ 0, 'asc']], aoColumns: [ { sType: 'string' }, { sType: 'string' }, { sType: 'string' }, { sType: 'string' }, { sType: 'string' },{ sType: 'string' }, { bSortable : false } , {bSortable : false} , {bSortable : false}] , bJQueryUI : true, bStateSave : true}";
    JSONObject json = new JSONObject(option);

    return json;  
}

饼干:

有什么问题?

谢谢!

【问题讨论】:

标签: jquery tapestry jquery-datatables


【解决方案1】:

没有看到任何代码,很难看出你做错了什么。如here 所述,bStateSave 标志使数据表将用户操作保存到客户端 cookie。

您的 cookie 中存储的过滤器可能与来自服务器的任何记录都不匹配,这意味着您的网格为空。

如今,大多数浏览器都有工具来检查您的 cookie。

【讨论】:

  • 谢谢。我刚刚添加了使用的代码。我会尝试查看 cookie 的内容。
  • 只为表创建了三个 cookie。打开第四张表时出现问题:随机出现空白页或者继续运行,但没有保存第四张表的状态。
  • 再一次,你把所有细节都给了臭虫!!!我不知道你的 4 张桌子是什么。 bStateSave 甚至可以在一个页面上支持多个数据表吗? cookie 名称是否包含表的 id 或者它们是否假定页面上有一个数据表?在这里给我一块该死的骨头!!!
【解决方案2】:

您可能正在达到最大 cookie 大小

http://browsercookielimits.x64.me/

【讨论】:

  • 我找到了这个:datatables.net/forums/discussion/14248/…,但我不知道如何将此代码与挂毯集成。
  • 该链接表明您已达到最大 cookie 长度并使用 fnStateSavefnStateLoad 保存到 local storage。要向 JSONObject 添加函数,可以调用 JSONObject.set("fnStateSave", new JSONLiteral("function (oSettings, oData) { ... }"));
  • 我没有设置函数,但是追加、累积...我试过 json.append("fnStateSave", new JSONLiteral("function (oSettings, oData) {localStorage.setItem(' dt-' + window.location.pathname, JSON.stringify(oData));}"));但它不起作用。
  • 是的,看跌或累积都可以。谢谢你的帮助。
  • 它可以和累加一起使用,但是不正确!!! fnStateSave 和 fnStateLoad 必须是函数,不能是数组。 Accumulate 将在为同一个键调用两次或多次时创建一个数组。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-07
  • 1970-01-01
  • 2019-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多