편집 가능한 내 도장 EnhancedGrid를 만드는 데 문제가 있습니다. 현재 격자 셀을 두 번 클릭 할 수 있지만 값을 변경할 수는 있지만 다시 Enter 키를 누르거나 셀을 벗어나려고하면 (즉, 새 값을 그리드에 저장하려고 할 때), "Assertion failed in ItemFileWriteStore "내 불알에 오류가있다. 다음은 Dojo EnhancedGrid 편집 가능한 문제
내 소스 코드 :<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">
body, html { font-family:helvetica,arial,sans-serif; font-size:90%; }
</style>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/claro/claro.css" />
<style type="text/css">
@import "http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojox/grid/resources/Grid.css";
@import "http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojox/grid/resources/claroGrid.css";
.dojoxGrid table { margin: 0; }
</style>
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js" djConfig="parseOnLoad: true">
</script>
<script type="text/javascript">
dojo.require("dojox.grid.EnhancedGrid");
dojo.require("dojo.data.ItemFileWriteStore");
dojo.require("dojox.grid.cells._base");
dojo.addOnLoad(function() {
var layoutabc =
[[
{
field: "title",
name: "TitleofMovie",
width: "300px",
editable: true
},
{
field: "year",
name: "Year",
width: "200px",
editable: true
},
{
field: "producer",
name: "Producer",
width: "auto",
editable: true,
type: dojox.grid.cells.Cell
}
]];
var mystore = new dojo.data.ItemFileWriteStore({
url: "movies.json"
});
// create a new grid:
var grid = new dojox.grid.EnhancedGrid(
{
query: {},
store: mystore,
structure: layoutabc
},
document.createElement("div")
);
dojo.byId("gridDiv").appendChild(grid.domNode);
grid.startup();
});
</script>
</head>
<body class="claro">
<div id="gridDiv" style="width: 800px; height: 400px;">
</div>
</body>
그리고 이것은 내 movies.json의 내용입니다 (데이터의 내용이 이상해, 내가 아는) :
{
items:
[
{
title: "Africa",
year: "continent",
producer: "Katia Lund"
},
{
title: "Kenya",
year: "country",
producer: "Christine Jeffs"
},
{
title: "Mombasa",
year: "city",
producer: "Ridley Scott"
}
]
}
추가 정보 : EnhancedGrid 대신 DataGrid를 사용하도록 변경 한 경우 모든 작업이 완료됩니다. – Hery
해결 방법은 무엇입니까? "{nestedSorting : true}"에서 플러그인을 설정하고이 부분을 코드에 추가합니다. var gPlugins = "{nestedSorting : true}"; grid.plugins = gPlugins; 그러나 아무것도 변화하지 않는다; 테이블을 새로 고칠 때 행을 추가하지 마십시오. –
@francesco : 'plugins'속성을 EnhancedGrid 생성자 자체에 전달했습니다. 나는 그것이 어떤 차이를 만들지는 모르지만 그것을 시도해야합니다. 문제가 해결되지 않으면 새로운 질문을하십시오.이 질문은 잠시 후에 물 었으므로 지금 사용했던 도조 버전은 다를 수 있습니다. – Hery