我真的很感激任何帮助。我正在以编程方式创建这个Dojox Datagrid并提供JSON数据。截至目前,我正在JavaScript中创建这些数据。请参考以下代码示例。
var upgradeStageStructure =[{
cells:[
{
field: "stage",
name: "Stage",
width: "50%",
styles: 'text-align: left;'
},
{
field:"status",
name: "Status",
width: "50%",
styles: 'text-align: left;'
}
]
}];
var upgradeStageData =
[
{id:1, stage: "Preparation", status: "Complete"},
{id:2, stage: "Formatting", status: "Complete"},
{id:3, stage: "OS Installation", status: "Complete"},
{id:4, stage: "OS Post-Installation", status: "In Progress"},
{id:5, stage: "Application Installation", status: "Not Started"},
{id:6, stage: "Application Post-Installation", status: "Not Started"}
];
var stagestore = new dojo.data.ItemFileReadStore({data:{identifier:"id", items: upgradeStageData}});
var upgradeStatusGrid = new dojox.grid.DataGrid({
autoHeight: true,
style: "width:400px;padding:0em;margin:0em;",
store: stagestore,
clientSort: false,
rowSelector: '20px',
structure: upgradeStageStructure,
columnReordering: false,
selectable: false,
singleClickEdit: false,
selectionMode: 'none',
loadingMessage: 'Loading Upgrade Stages',
noDataMessage:'There is no data',
errorMessage: 'Failed to load Upgrade Status'
});
dojo.byId('progressIndicator').innerHTML='';
dojo.byId('progressIndicator').appendChild(upgradeStatusGrid.domNode);
upgradeStatusGrid.startup();
问题是我在显示时没有看到网格内的任何内容(没有标题,没有数据)。但我确信网格中的数据确实存在并且网格已正确初始化,因为我调用了alert (grid.domNode.innerHTML);
。生成的HTML会显示一个包含标题行和上述数据的表。
This link包含一张图片,说明了我在显示页面时看到的内容。 (因为我的帐户是新的,所以无法发布图片)
正如您可能已经注意到的,我创建的6个数据有6行,但网格很乱。如果您认为自己知道可能出现什么问题,请提供帮助。
提前致谢, VIV
答案 0 :(得分:1)
要做的第一件事是使用像Firebug http://getfirebug.com/这样的东西来检查DOM,看看你的数据网格是否被插入到DOM中(但是不可见)。寻找“dojoxGrid”类的东西如果你看到了,你看到任何与之相关的样式吗?如果你的高度设置为0,或者它被设置为隐藏,或者......
当我没有将我的网格高度设置为修复px数时,我遇到了你正在描述的问题。所以,一旦我的网格看起来如下所示,一切运作良好:
(In my HTML Markup:)
<div id="kgbHolder"></div>
(In my JavaScript:)
var kgbStore = new dojox.data.QueryReadStore({ url: "kgbService.php?kgbID=" + id });
var kgbGrid = new dojox.grid.DataGrid({
store: kgbStore,
noDataMessage: 'No kreits associated with selected query.',
selectionMode: 'single',
height: "400px",
clientSort: true,
structure: kgbGridLayout
});
var kgbHolder = dojo.byId('kgbHolder');
kgbHolder.appendChild(kgbGrid.domNode);
kgbGrid.startup();
dijit.byId('kgbDialog').show();
注意:我在使用样式键设置高度(使用宽度)时遇到问题。只需要高度:“someNumpx”。
答案 1 :(得分:0)
我终于解决了这个问题!在我的HTML文件中,我有以下标记:
<center>
<div id="gridArea">
<div dojoType="dojox.data.DataGrid" dojoAttachPoint="myGrid"></div>
</div>
</center>
问题在于<center>
标记。删除它会导致网格正确显示数据。这很奇怪,如果有人可以推断出为什么会这样,我会很感激。