/ / Dojo grid nefunguje vnútri div - javascript, html, dojo, dojox.grid.datagrid

Dojo mriežka nefunguje vnútri div - javascript, html, dojo, dojox.grid.datagrid

uzatvárajúce <div id="grid1"></div> vnútri <div></div> zmizne.

V nižšie uvedenom jednoduchom kóde sa Datagrid chová úplne dobre, až kým nie je uzavretý v dodatočnej div.

Toto funguje:

http://jsfiddle.net/pfvEa/

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/dojo/1.8.0/dojo/resources/dojo.css" />
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/dojo/1.8.0/dojox/grid/resources/claroGrid.css" />
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/dojo/1.8.0/dijit/themes/claro/claro.css" />
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.8.0/dojo/dojo.js"></script>
<script>
require([
"dojo/store/Memory",
"dojo/data/ObjectStore",
"dojox/grid/DataGrid",
"dojo/domReady!"
], function(Memory, ObjectStore, DataGrid){
data = [
{ abbr:"ec", name:"Ecuador", capital:"Quito" },
{ abbr:"ec1", name:"Ecuador1", capital:"Quito1" }
];
var objectStore = new Memory({
data: data
});
grid = new DataGrid({
store: ObjectStore({objectStore: objectStore}),
structure: [
{name:"Country", field:"name", width: "150px"},
{name:"Abbreviation", field:"abbr"},
{name:"Capital", field:"capital"}
]
}, "grid1");
grid.startup();
});
</script>
</head>
<body class="claro">
before
<div id="grid1"></div>
after
</body>
</html>

To nefunguje:

http://jsfiddle.net/ssMG4/

<body class="claro">
before
<div>
<div id="grid1"></div>
</div>
after
</body>

Platí pre dojo v1.8, 1.9 a dokonca aj 1.6.

Čo robím zle?

odpovede:

1 pre odpoveď č. 1

Opravený problém!

http://jsfiddle.net/pfvEa/1/

Musel som len pridať tieto riadky kódu

#grid1
{
height: 20em;
}

aktualizovať (ahatchkins) o tom, prečo je to potrebné. Citácia z dokumentov:

Hlavným dôvodom je „dynamická“ povahasamotnej mriežky. Mriežka sa musí začať rozvrhnúť skôr, ako bude mať nejaké údaje - tak nemá spôsob, ako „vedieť“, do akej miery je možné stĺpce nakresliť - pretože nemáme údaje. V závislosti od prehliadača sme schopní urobiť „najlepší odhad“ - ale nefunguje vo všetkých situáciách.