我正在使用一个Dojo网格,我需要用JsonRest填充它。
这是密码:
require
(
[ 'dojo/_base/lang', 'dojox/grid/DataGrid', 'dojo/data/ObjectStore', 'dojo/store/JsonRest', 'dojo/dom', 'dojo/domReady!' ],
function ( 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":"Facilities","strategycompliantflag":"GROUP_STRATEGY_NA"},
{"strategyid":"1","strategyname":"Panel","strategycompliantflag":"GROUP_STRATEGY_NA"},
{"strategyid":"0","strategyname":"Agreem.","strategycompliantflag":"GROUP_STRATEGY_NA"}
--等等
我的目标是在网格的头中放入strategyname字段的值,在行中放入strategyid字段的值,但我似乎不知道如何实现,相反,我只在头中放入一列,如下所示:
-------------
strategyname
-------------
1
0
1
我希望
------ ------------- ------- ----
AR Facilities Panel Agreem
------ ------------ -------- --------
1 0 1 0
为此,我认为可以在数据集合的循环中查询JsonRest,以形成所需的结构并将其传递给网格。
有人能帮帮我吗?
1条答案
按热度按时间hsvhsicv1#
看起来您使用的是dojo 1.7+,因此您可以从摆脱对dojo全局(dojo.connect等)的所有调用开始,并将其替换为AMD等效项。
对于你正在努力实现的,你必须做这两个步骤:
首先,调用商店以获取数据,然后使用以下内容创建布局:
然后,塑造数据项以匹配布局中声明的字段名,并将它们放入memoryStore中。
示例:
最后,使用转换后的存储作为objectStore属性创建objectStore,并将其分配给网格。http://jsfiddle.net/psoares/9MLT5/
Pidoss.:我把你的JsonRestStore换成了小提琴里的MemoryStore“memStore”。