在以下示例数据中,如果json数据包含名称列,则仅在网格中显示->第一个网格显示数据,第二个网格不显示数据。
为什么会这样?
index.html:道场网格
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.3/dijit/themes/tundra/tundra.css" />
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.3/dojo/resources/dojo.css" />
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.3/dojox/grid/_grid/tundraGrid.css">
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/dojo/1.3/dojo/dojo.xd.js"
djConfig="parseOnLoad: true, isDebug: true">
</script>
<script type="text/javascript">
dojo.require("dojo.parser");
dojo.require("dojox.grid.Grid");
dojo.require("dojo.data.ItemFileReadStore");
</script>
</head>
<body class="tundra">
<span dojoType="dojo.data.ItemFileReadStore"
jsId="withNameStore"
url="WithNameColumn.json"
clearOnClose="true">
</span>
<table id="withNameGrid"
dojoType="dojox.grid.Grid"
store="withNameStore"
clientSort="true"
style="width: 20em; height: 20em;">
<thead>
<tr>
<th field="ID" >ID</th>
<th field="test">Test</th>
</tr>
</thead>
</table>
<span dojoType="dojo.data.ItemFileReadStore"
jsId="withoutNameStore"
url="WithoutNameColumn.json"
clearOnClose="true">
</span>
<table id="withoutNameGrid"
dojoType="dojox.grid.Grid"
store="withoutNameStore"
clientSort="true"
style="width: 20em; height: 20em;">
<thead>
<tr>
<th field="ID" >ID</th>
<th field="test">Test</th>
</tr>
</thead>
</table>
</body>
</html>
WithNameColumn.json:
{
"identifier":"ID",
"label":"test",
"items":
[{"ID":2,"name":"name1","test":"dog"},
{"ID":3,"name":"name2","test":"cat"},
{"ID":4,"name":"name3","test":"mouse"}]
}
WithoutNameColumn.json:
{
"identifier":"ID",
"label":"test",
"items":
[{"ID":2,"test":"dog"},
{"ID":3,"test":"cat"},
{"ID":4,"test":"mouse"}]
}
只需将查询属性添加到您的元素。像这样:
这是因为它将在从数据存储中请求数据时执行查询
不需要名称列但是,您确实需要数据存储区中的属性与网格。这是在定义网格“布局”时完成的[Layout]中的'field'属性是数据存储中列的名称(准确地说是属性的名称),而'Layout'中的'name'属性是网格中的列名称。] >
gridLayout = [{
defaultCell: {
width: 8,
editable: true,
type: dojox.grid.cells._Widget,
styles: 'text-align: right;'
},
rows: [{
name: 'Id',
field: 'id',
editable: false /* Can't edit ID's of dojo.data items */
},
{
name: 'Date',
field: 'col8',
width: 10,
type: dojox.grid.cells.DateTextBox,
formatter: formatDate,
constraint: {
formatLength: 'long',
selector: "date"
}
},
{
name: 'Priority',
styles: 'text-align: center;',
field: 'col1',
type: dojox.grid.cells.ComboBox,
options: ["normal", "note", "important"],
width: 10
},
{
name: 'Mark',
field: 'col2',
width: 3,
styles: 'text-align: center;',
type: dojox.grid.cells.CheckBox
},
statusCell,
{
name: 'Message',
field: 'col4',
styles: '',
width: 10,
type: dojox.grid.cells.Editor,
editorToolbar: true
},
{
name: 'Amount',
field: 'col5',
formatter: formatCurrency,
constraint: {
currency: 'EUR'
},
widgetClass: dijit.form.CurrencyTextBox
},
{
name: 'Amount',
field: 'col5',
formatter: formatCurrency,
constraint: {
currency: 'EUR'
},
widgetClass: dijit.form.HorizontalSlider,
width: 10
}
]
}];