Dojo:使用JsonRestStore使用EnhancedGrid保存更改?

时间:2012-02-01 03:35:50

标签: javascript rest dojo

我正在尝试使用EnhancedGrid和JsonRestStore:

<script type="text/javascript">
dojo.require("dojox.grid.EnhancedGrid");
dojo.require("dojox.data.JsonRestStore"); 

dojo.ready(function(){
/*set up data store*/
var store = dojox.data.JsonRestStore({
target: "test/id"
});

/*set up layout*/
var layout = [[
{name: 'Column 1', field: 'id', width: '100px',  editable : true},
{name: 'Column 2', field: 'col2', width: '100px',  editable : true, type : dojox.grid.cells.Bool},
{name: 'Column 3', field: 'col3', width: '200px'},
{name: 'Column 4', field: 'col4', width: '150px', editable : true, type : dojox.grid.cells.Select, options : ['ON','OFF'] , values: [ '0', '1' ]}
]];

/*create a new grid:*/
var grid = new dojox.grid.EnhancedGrid({
id: 'grid',
store: store,
structure: layout,
rowsPerPage: 5,
rowSelector: "20px",
selectionMode: "single",
},
document.createElement('div'));

/*append the new grid to the div*/
dojo.byId("gridDiv").appendChild(grid.domNode);

/*Call startup() to render the grid*/
grid.startup();
});
</script>
<style type="text/css">
@import "/js/dojox/grid/resources/claroGrid.css";

/*Grid need a explicit width/height by default*/
#grid {
width: 80em;
height: 40em;
}
</style>
<div id="gridDiv" class="claro"></div>

在服务器端,我有一个Rest服务,用于处理Get,Put,Post和Delete请求。

我有两个不同的问题,但我不知道它们是否有联系:

1-当我双击任何可编辑单元格时,它可以正常工作,我可以更改单元格的内容。但后来我无法编辑任何其他可编辑单元格。无论我点击哪一个,我都无法编辑它。例如,如果我双击“选择”单元格,我将能够在两个值之间进行选择,即ON或OFF。但后来我再也无法编辑任何其他细胞了。我刚刚编辑过的单元格将继续显示一个箭头,他的行将保持选中状态。

2-服务器永远不会收到任何PUT请求。它会在初始显示时收到GET请求,当我滚动网格时,这是我将在服务器端获得的唯一REST请求。所以我无法想出如何制作和保存网格中的任何更改!

有任何线索吗?

0 个答案:

没有答案