2016-01-26 77 views
0

以下代碼構建3個數據網格,2個通過標記和1個通過代碼構建。dojo datagrid autoheight以編程方式定義時不起作用

當您按下「autoheight!」時按鈕只有標記數據網格調整大小。

我不明白爲什麼代碼datagrid不起作用。據我所見,相同的屬性正在初始化。

感謝

<!DOCTYPE html> 
<html> 
<head> 
<link rel="stylesheet" href="http://js.arcgis.com/3.13/dijit/themes /claro/claro.css"> 
<link rel="stylesheet" href="http://js.arcgis.com/3.13/dojox/grid/resources/claroGrid.css"> 
<script>dojoConfig = {parseOnLoad: true}</script> 
<script src="http://js.arcgis.com/3.13/"></script> 
<script>require(["dojo/parser", "dijit/layout/TabContainer", "dijit/layout/ContentPane"]);</script>  
<meta charset="UTF-8"> 
<title>alubia</title> 

<script type="text/javascript"> 
    var test_store; 

    var layout = [ 
     {name:"id", field:"id", width: '165px', noresize: 'true'}, 
     {name:"data", field:"data", width: '125px', noresize: 'true'}   
    ]; 

    function loadData(gridId, divId) {          
    require(['dojo/data/ItemFileWriteStore', 'dojox/grid/DataGrid'], function(ItemFileWriteStore, DataGrid) {   
     var mi_data = { 
      items : [], 
      identifier:"id" 
     };         

     for (var i = 0; i < 22; i++) { 
      mi_data.items.push({id: ""+i, data:"111 ! "+ i});   
     }  

     test_store = new ItemFileWriteStore({data: mi_data});   

     if (divId != null) {   
      var grid = new DataGrid({ 
       id : gridId, 
       store : test_store, 
       structure : layout, 
       rowSelector : '0px', 
       autoHeight : false     
      }); 

      grid.placeAt(divId);  
      grid.startup(); 
     } 
    });   
    } 

    function fitHeight(gridId) {   
     var grid = dijit.byId(gridId);   
     grid.set('autoHeight', true); 
     grid.set('autoWidth', false); 
     grid.update();   
    }   

    loadData("grid", null); 
    loadData("grid2", "grid2Div"); 
    loadData("grid3", null); 
</script> 
</head> 

<body class="claro" style="font-family:sans-serif; font-size:12px;"> 
<button onclick="fitHeight('grid'); fitHeight('grid2'); fitHeight('grid3');">autoheight!</button>&nbsp;   

<div id="grid2Div" style="height: 7em;" ></div> 
<div id="grid" style="height: 7em;" data-dojo-id="grid" dojoType="dojox.grid.DataGrid" autoHeight="false" store="test_store" structure="layout" ></div>  
<div id="grid3" style="height: 7em;" data-dojo-id="grid3" dojoType="dojox.grid.DataGrid" autoHeight="false" store="test_store" structure="layout" ></div> 
</body> 
</html> 
+0

您還有兩個網格共享相同的數據-dojo-id =「網格」。你可以做一個活的小提琴嗎?你也可以調用.resize(),但更容易看到你的proeblem的小提琴工作。 – Layke

+0

@Layke無法在小提琴上工作。儘管如此,但是https://jsfiddle.net/davidzornosa/yqhvp0sn/。只需將上面的代碼粘貼到一個空html中,然後看到工作示例 –

+0

看起來您並未在小提琴btw上加載dojo。我只是看了一眼。 '未捕獲的ReferenceError:require未定義' – Layke

回答

0

再次,道場是一個可怕的工具。去數據表(jQuery插件)。太陽再次閃耀。

相關問題