我在这里阅读了关于dojox.Grid的帖子,包括关于tabcontainer的帖子,但它似乎没有解决我的问题。
我有一个以编程方式添加的网格,如果网格在“主”标记中,则可以处理,但如果我将网格放在对话框中则停止显示。
为什么有任何想法?使用dojo 1.3.1。
dijit.byId("myDialog").show();
var gridStore = new dojo.data.ItemFileReadStore({
data : {
identifier : "id",
items : [
{"id" : 1, "label" : "foo"},
{"id" : 2, "label" : "bar"},
{"id" : 3, "label" : "baz"}
]
}
});
/* A simple layout that specifies column headers and
* mappings to fields in the store */
var gridLayout = [
{name : "ID", field : "id", width : "50%"},
{name : "Label", field : "label", width : "50%"}
];
/* Programmatically construct a data grid */
var grid = new dojox.grid.DataGrid({
store : gridStore,
structure : gridLayout
}, "gridNode");
/* Tell the grid to lay itself out since
* it was programmatically constructed */
grid.startup();
标记是:
<div dojoType="dijit.Dialog" id="myDialog" title="Multiple Addresses" style="width:400px;height:300px" >
<div dojoType="dijit.layout.ContentPane" id="gridNode" style="positon:relative;width:100%;height:100%"></div>
感谢您的帮助, Ruprict
答案 0 :(得分:3)
所以,我遇到的问题似乎源于没有在网格容器div(gridNode)上放置显式样式一旦我这样做了:
<div dojoType="dijit.layout.ContentPane" id="gridNode" style="width:400px;height:300px"></div>
它开始工作了。
答案 1 :(得分:1)
FYI。我正在做类似的事情(对话框中的网格)并且发现如果我在隐藏对话框时尝试修改存储(或者至少在网格上调用setStore),则会发生错误。需要注意的事项。
答案 2 :(得分:0)
我以编程方式创建所有内容,以便对我不起作用,我必须连接到对话框的_getFocusItems方法,这只会发生对话框的动画结束。
lov.connect(lov,"_getFocusItems",dojo.hitch(this,function(){
var dijitTitle = new dijit.TitlePane({
title: "Resultados",
toggleable:false,
open:true,
style:"min-width:98%;display:inline-block;width:98%;height:"+dialogStyle.h-100+"px;",
baseClass:"dijitTitlePane qtResultsTitle"
},div);
dijitTitle.startup();
var fisaSubGrid = new dojox.grid.EnhancedGrid({
store:store,
structure: layoutRate,
autoHeight:"true",
autoWidth:true,
initialWidth:dialogStyle.w-50+"px",
plugins: {
pagination: {
description: false,
sizeSwitch: false,
pageStepper: true,
gotoButton: false,
maxPageStep: 5,
position: "bottom",
defaultPage: 2,
defaultPageSize: 10
}
}
});
dijitTitle.addChild(fisaSubGrid);
fisaSubGrid.startup();
}));