我正在使用dojo网格,我需要使用JsonRest填充
这是代码: 要求 ( ['dojo / _base / lang','dojox / grid / DataGrid','dojo / data / ObjectStore','dojo / store / JsonRest','dojo / dom','dojo / domReady!' ] 函数(lang,DataGrid,ObjectStore,JsonRest,dom) {
jsonr = new JsonRest
(
{ target: 'carrierSlideListStrategiesByGroupOrCarrierAction.do?output=<%=Constants.OUTPUT_JSON%>' }
);
var layout =
[
[
{ 'name': 'strategyname', 'field': 'strategyid', 'width': '23%', 'cellStyles': 'white-space: nowrap;', 'headerStyles': 'white-space: normal; word-wrap: normal; text-align: center;' }
]
];
grid00 = new DataGrid
(
{
store: store00 = new ObjectStore ( { objectStore: jsonr } ),
structure: layout,
rowSelector: '20px'
}
);
grid00.placeAt ( 'grid00' );
grid00.startup ();
dojo.connect
(
grid00,
"_onFetchComplete",
function ()
{
$ ( '#msg_home' ).empty ();
$ ( '#msg_home' ).html ( '<table><tr><td><bean:message key="bodycarrierslidebygrouporcarrier.query.businessnumbers.done00"/>' + '<b>' + grid00.rowCount + '</b>' + '<bean:message key="bodycarrierslidebygrouporcarrier.query.done01"/></td></tr></table>' );
}
);
}
);
我得到的数据收集如下:
[{ “strategyid”: “1”, “strategyname”: “AR”, “strategycompliantflag”: “GROUP_STRATEGY_NA”}, { “strategyid”: “0”, “strategyname”: “设施”, “strategycompliantflag”: “GROUP_STRATEGY_NA”}, { “strategyid”: “1”, “strategyname”: “面板”, “strategycompliantflag”: “GROUP_STRATEGY_NA”}, { “strategyid”: “0”, “strategyname”: “Agreem。”, “strategycompliantflag”: “GROUP_STRATEGY_NA”}
- 等
我的目标,我似乎不知道如何实现,是将字段策略名称的值放入网格标题中,并在行中添加字段策略的值,而不是我进入标题只有一列如下:
1 0 1
我想拥有 ------ ------------- ------- ---- AR设施小组协议
1 0 1 0
要做到这一点我认为我可以在循环中查询JsonRest数据集合以形成我需要的结构并将其传递给网格 ¿有人可以帮我吗?
答案 0 :(得分:1)
看起来你正在使用dojo 1.7+,所以你可以先摆脱对dojo global(dojo.connect等等)的所有调用,然后将其替换为AMD等价物。
对于您要实现的目标,您必须分两步完成:
首先,调用您的商店来获取数据,并使用以下内容创建您的布局:
var layout = array.map(yourJsonStore.query(), function (item) {
return {
name: item.strategyname,
field: "strategycomplyantflag" + "_" + item.strategyname
}
});
然后,模拟您的数据项以匹配布局中声明的字段名称,并将它们放在memoryStore中。
示例:
var transformedMemStore = new Memory({
data: array.map(yourJsonStore.query(), function (item) {
var obj = {};
obj["id"] = item.strategyid;
obj["strategycomplyantflag_" + item.strategyname] = item.strategycompliantflag;
return obj;
})
});
最后,使用转换后的商店作为objectStore属性创建objectStore,并将其分配给您的网格。完整示例:http://jsfiddle.net/psoares/9MLT5/
P.S。 :我用小提琴中的MemoryStore“memStore”替换了你的JsonRestStore ......