我已经在本网站上看到过有关同一问题的其他帖子,并且我已尝试过给出的解决方案。我也访问了可能提供解决方案的链接,但我仍然遇到同样的错误。
我正在使用DOJO和一些简单的事情,甚至没有工作
myStore.newItem({id: 'test', otherfield: 'otherinfohere'});
myStore.save();
据说" newItem()没有传递新项目的标识"如果您没有为新项目提供标识符,则会出现错误。 这个的全部目的(以防任何人可以提供一个好主意或之前做过类似的事情)是我想创建一个显示来自特定商店的信息的数据网格。问题是,在该商店中,所有商品可能没有相同的结构。例如:
我可能有一个看起来像这样的商店
{identifier: 'id',
label: 'name',
items: [
{ id:'1', name:'Ecuador', capital:'Quito' },
{ id:'2', name:'Egypt', capital:'Cairo' },
{ id:'3', name:'El Salvador', capital:'San Salvador' , additionalField: 'otherinfohere'},
{ abbr:'gq', name:'Equatorial Guinea', capital:'Malabo', additionalField: 'otherinfohere'},
]}
这是可能的,因为我是在Spring Controller中构建存储的人(我也使用Spring Framework)来自本地存储在Berkeley DB中的信息。所以我需要的是一个动态布局的数据网格,因为我不希望在视图中显示较少字段的行中的空格,我需要在同一个商店中显示所有信息时间,但我不知道该怎么做。 我想通过创建一个只有1个字段的简单布局来做到这一点。在其中我将从我在运行时动态创建的商店加载数据。商店中的数据将由HTML与来自原始商店的值组合在一起,因此我可以获得类似这样的内容,它位于JavaScript对象的属性中,让浏览器为我解析它:
<div><span>id: originalID </span>....</div>
这当然是一个简单的例子,我正在寻找的html布局要复杂得多,但我认为将它作为字符串传递给对象可能会有所帮助。 问题是,我甚至不知道这个想法是否会奏效,因为每当我尝试向我的二级商店添加价值时我都会收到错误。
rdb.modules.monitor.historicStore.fetch({onComplete: function(items, request){
for (var i = 0; i < items.length; i++){
var item = items[i];
var obj = new Object();
obj.id = rdb.modules.monitor.historicStore.getValue(item, "id");;
var html = "<div><span>";
html += rdb.modules.monitor.historicStore.getValue(item, "sql");
html += "</span></div>";
obj.html = html;
myStore.store.newItem(obj);
}
}});
在此背景下&#34; historicalStore&#34;指的是具有我需要转换并添加到&#34; myStore&#34;的值的JSON商店。在我添加了一些HTML之后。
我希望你能够了解我想要做的事情。如果有人能帮助我,我们中的任何一个都会非常感激。提前致谢
答案 0 :(得分:0)
关于商店的问题: - “id”对于商店是必需的,如果它将用于网格(datagrid,EnhancedGrid等等)。仅通过网格数据结构基于“id”属性处理项目。
通常,id可以是循环变量/自动增量,以避免像你所说的任何情况。在将商店添加到网格之前,请确保所有商品都具有id属性。您可以编写一个循环遍历每个项目并检查此项的函数,否则为该项目的id属性添加一个自动递增值。