Mam następujący problem:Jak programowo utworzyć dijit.Dialog z dojox.grid.DataGrid
Programowo tworząc dijit.Dialog i dojox.grid.DataGrid (połączony z zmienna globalna przechowywania danych (dojo.store.Memory)) zawartość okna dialogowego nie jest wyświetlana, gdy rozmiar okna dialogowego pozostaje na minimalnym poziomie.
Magazyn DataGrids jest wypełniony poprawnie, a Firebug pokazuje tabelę wewnątrz okna dialogowego.
data = new dojo.data.ObjectStore(
{ objectStore: new dojo.store.Memory({data:[]}) });
data.put({id:0,name:'Franklin'});
showDialog = function(){
var dlg = dijit.byId('myDlg');
if(dlg){
dlg.show();
}
else{
var cp = new dijit.layout.ContentPane({style:"width:500;height:500;"});
var grid = new dojox.grid.DataGrid({
store : data,
structure : [
{field:'id',name:'ID',width:'50px'},
{field:'name',name:'Name',width:'400px'}]
},cp);
dlg = new dijit.Dialog({
id:'myDlg',
title:'Names',
content:cp.domNode
});
grid.startup();
dlg.show();
}
);
Może dodałem coś w niewłaściwej kolejności?
Również nie wiem, czy mój sposób łączenia/dołączania widgetów dojo przy użyciu właściwości domNode jest prawidłowym sposobem robienia rzeczy.
Nie wiem, czy ContentPane używam jest konieczne do umieszczenia siatki wewnątrz okna dialogowego. Oba warianty do tej pory nie działały.
Wreszcie nie jestem pewien, czy i gdzie Dialog wymaga pomiarów statycznych na właściwy rozmiar. Z mojego doświadczenia wynika, że sam Dialog nie potrzebuje statycznej szerokości ani wysokości, ale nie mam do tej pory doświadczenia z dodawaniem dynamicznego komponentu , takiego jak Grid - który może zmienić swój rozmiar później przy starcie - do okna dialogowego.
To rozwiązanie sprawdziło się, ale wracając do tego pytania, widzę możliwe lepsze rozwiązania - więc ponownie otwieram to pytanie, żeby je sprawdzić. – elfwyn
Zrobiłem to samo. Problem polega na tym, że próbujesz dodać więcej niż siatkę do okna dialogowego. udało mi się obejść, ale jakoś dialog nie jest wyśrodkowany. – Nap
@Nap Mam ten sam problem, nie jest on wyśrodkowany! Ciekawe, czy to załatwiłeś? – Saky