ExtJS 3.4 : Grid does not automatically save and restore state. 我做错了什么?

标签 extjs extjs3

我有一个带有 stateful:true 的 Ext 3.4 网格,一个 stateId,并且列模型中的每一列都有一个 id。

然而,当我调整列大小时,我没有看到任何保存的状态 cookie,并且在重新加载页面时列宽不会恢复。
我确实有一个定义了 cookie 提供程序的状态管理器,我可以通过状态管理器设置/获取 cookie 值就好了。

我还为 beforestatesave 和 statesave 添加了处理程序,它们正在被调用,但仍然 - 没有保存 cookie,也没有恢复状态。这些处理程序也被传递了正确的参数——列参数在转储到控制台时显示正确的更新宽度。

我的问题是:我做错了什么吗?我不应该期望这是自动的吗?
我真的必须使用这些状态事件来手动保存和恢复状态吗?

最佳答案

我自己遇到了这个问题,我在拔头发大约 2 小时后才弄清楚。

你碰巧有一个相当大的网格吗?如果 cookie 数据超过 4k(如果您有 20 多列数据很容易做到),它将不会保存。它也不会出错。

我想这里唯一的其他选择是去不同的州提供者。我要去看看httpProvider那个Saki慷慨地提供了替代方案。

编辑:

我试图覆盖提供程序并在保存 cookie 时删除字符串转义。这将尺寸减小了大约 50%。不过,我在尝试恢复时似乎无法消耗它。我确信 Ext 作者这样做是有原因的,否则没有意义,因为它使 cookie 膨胀了很多。一个黑客就这么多了。

关于ExtJS 3.4 : Grid does not automatically save and restore state. 我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11742338/

相关文章:

forms - Extjs 无法动态添加/删除表单面板中的字段

javascript - extjs 3.x 多实例

json - 带有 JSON 存储数据的 Extjs 5 XTemplate

javascript - ExtJs 4.1网格的分组功能启用和禁用问题

layout - 如何在 ExtJS 4 中实现流程布局?

json - Ajax成功,但JSON中的Grails为空

javascript - ExtJS 3 : Two ways of creating custom class: what's the difference?

extjs - 如何在特定位置(索引)添加 ExtJs 组件?

javascript - 从 Extjs MVC 应用程序中获取全局变量

javascript - 如何将面板的背景颜色设置为透明