为所有页面设置dijit.Tree cookie

时间:2010-03-24 14:31:35

标签: tree dojo

我在我们的应用程序中的几个页面上使用相同的dijit.Tree视图,并且我希望为服务器名称而不是文件夹名称保存cookie。
现在我有3页和3个cookie,每个都有自己的树状态信息,这有点烦人。

有任何方法可以实现这一目标吗?我在API中找到的唯一内容就是我可以设置cookieName并打开/关闭Cookie。

1 个答案:

答案 0 :(得分:4)

似乎Tree.js不允许您设置Cookie的属性。所以我只需要覆盖_saveState()的{​​{1}}方法:

Tree

这是最后一行代码。 var treeControl = new dijit.Tree({ model: treeModel, showRoot: false, openOnClick: false, cookieName: "OrganizationUnitTreeState", _saveState: function(){ // summary: // Create and save a cookie with the currently expanded nodes identifiers // Overre the default saveState function, so we can set the cookie path if(!this.persist){ return; } var ary = []; for(var id in this._openedItemIds){ ary.push(id); } dojo.cookie(this.cookieName, ary.join(","), {expires:365, path:"/"}); }, /* Many more methods */ }); 获取一个键/值对的列表,这些键将被转换为cookie属性,因此如果您想要设置任何其他属性,那么就是这样做的。