我没有成功地让GridX
显示出来。我目前在firebug中遇到4个与dojo.js有关的错误,两个Error: scriptError
一个Error: multipleDefine
和一个奇怪的错误:GET https://localhost:8443/warfile/javascript/dojo-release-1.10.0/dojo/store/templates/Grid.html 404 Not Found
我正在尝试关注此poorly documented example from the Gridx wiki
这是我的代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Test GridX Widget</title>
<script type="text/javascript" src="javascript/dojo-release-1.10.0/dojo/dojo.js" data-dojo-config="async: true, parseOnLoad: true" ></script>
<script type="text/javascript" src="javascript/gridx-1.3/Grid.js"></script>
<script type="text/javascript" src="javascript/gridx-1.3/GridCommon.js"></script>
<link rel="stylesheet" href="javascript/dojo-release-1.10.0/dijit/themes/claro/claro.css" />
<link rel="stylesheet" href="javascript/dojo-release-1.10.0/dijit/themes/claro/document.css" />
<link rel="stylesheet" href="javascript/gridx-1.3/resources/claro/Gridx.css" />
<style type="text/css">
.gridx {
width: 400px;
height: 200px;
}
</style>
<script>
require([
//Require resources.
"dojo/store/Memory",
"gridx/core/model/cache/Sync",
"gridx/Grid"
], function(Memory, Cache, Grid){
//Use dojo/store/Memory here
var store = new Memory({
data: [
{ id: 1, name: 'John', score: 130, city: 'New York', birthday: '1980/2/5'},
{ id: 2, name: 'Alice', score: 123, city: 'Washington', birthday: '1984/3/7'},
{ id: 3, name: 'Lee', score: 149, city: 'Shanghai', birthday: '1986/10/8'},
{ id: 4, name: 'Mike', score: 100, city: 'London', birthday: '1988/8/12'},
{ id: 5, name: 'Tom', score: 89, city: 'San Francisco', birthday: '1990/1/21'}
]
});
//We are using Memory store, so everything is synchronous.
var cacheClass = "gridx/core/model/cache/Sync";
var structure = [
{ id: 'name', field: 'name', name: 'Name', width: '50px'},
{ id: 'city', field: 'city', name: 'City'},
{ id: 'score', field: 'score', name: 'Score', width: '80px'}
];
//Create grid widget.
var grid = Grid({
id: 'grid',
cacheClass: Cache,
store: store,
structure: structure
});
//Put it into the DOM tree. Let's assume there's a node with id "gridContainer".
grid.placeAt('gridContainer');
//Start it up.
grid.startup();
});
</script>
</head>
<body class="claro">
<div id="gridContainer"></div>
</body>
</html>
答案 0 :(得分:1)
这是GridX的工作代码。
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>GridX testing</title>
<style type="text/css">
/*Use claro theme.*/
@import "javascript/dojo-release-1.10.0/dijit/themes/claro/claro.css";
@import "javascript/dojo-release-1.10.0/dijit/themes/claro/document.css";
/*Import the main CSS file of Gridx.*/
@import "javascript/dojo-release-1.10.0/gridx-1.3/resources/claro/Gridx.css";
.gridx {
width: 400px;
height: 200px;
}
</style>
<!-- dojo configuration options -->
<!-- For Package configuration refer tutorial at http://dojotoolkit.org/documentation/tutorials/1.7/modules/ -->
<script type="text/javascript">
var dojoConfig = {
async: true,
baseUrl: "/javascript/",
tlmSiblingOfDojo: false,
packages: [
{ name: "dojo", location: "dojo-release-1.10.0/dojo" },
{ name: "dijit", location: "dojo-release-1.10.0/dijit" },
{ name: "dojox", location: "dojo-release-1.10.0/dojox" },
{ name: "gridx", location: "dojo-release-1.10.0/gridx-1.3" }
]
};
</script>
<!-- third-party javascript -->
<script src="javascript/dojo-release-1.10.0/dojo/dojo.js"></script>
<script>
require([
//Require resources.
"dojo/store/Memory",
"gridx/core/model/cache/Sync",
"gridx/Grid"
], function(Memory, Cache, Grid){
//create store......
var store = new Memory({
data: [
{ id: 1, name: 'John', score: 130, city: 'New York', birthday: '1980/2/5'},
{ id: 2, name: 'Alice', score: 123, city: 'Washington', birthday: '1984/3/7'},
{ id: 3, name: 'Lee', score: 149, city: 'Shanghai', birthday: '1986/10/8'},
{ id: 4, name: 'Mike', score: 100, city: 'London', birthday: '1988/8/12'},
{ id: 5, name: 'Tom', score: 89, city: 'San Francisco', birthday: '1990/1/21'}
]
});
//create structure......
var structure = [
{ id: 'name', field: 'name', name: 'Name', width: '50px'},
{ id: 'city', field: 'city', name: 'City'},
{ id: 'score', field: 'score', name: 'Score', width: '80px'}
];
//Create grid widget.
var grid = Grid({
id: 'grid',
cacheClass: Cache,
store: store,
structure: structure
});
//Put it into the DOM tree. Let's assume there's a node with id "gridContainer".
grid.placeAt('gridContainer');
//Start it up.
grid.startup();
});
</script>
</head>
<body class="claro">
<div id="gridContainer"></div>
</body>
</html>
答案 1 :(得分:0)
感谢来自dojo论坛的Rick Lacy,他引导我进入了一个有效的GridX。您可以看到帖子HERE。问题是我有data-dojo-config="async: true"...
这意味着它自动拉入GridX js并且我仍然在我的页面中包含GridX js文件,这导致我的网格无法工作。我只是删除了这两行:
<script type="text/javascript" src="javascript/dojo-release-1.10.0/gridx-1.3/Grid.js"></script>
<script type="text/javascript" src="javascript/dojo-release-1.10.0/gridx-1.3/GridCommon.js"></script>
我还将gridx-1.3目录重命名为gridx,使其更加标准化。