2012-08-31 86 views
0

我使用ExtJS 4網格,我的要求是網格應該隱藏在第一個,應該是可見的,當按下某個按鈕。

我不知道它是一個錯誤還是其他什麼,但問題是,如果設置style="display:none;"爲im渲染網格的div,並在稍後單擊按鈕時顯示它,網格不會顯示出來。但是,如果我先顯示網格,然後按下按鈕以隱藏或顯示網格,則效果很好。

以下是代碼HTML和Javascript。
HTML:ExtJS 4網格現在顯示後,取消隱藏div

<div id="outPut"> 
    <div id="gridShowClick" style="height: 50px; 
    width: 180px; background-color:Black; color:White; 
    padding-top:25px; text-align:center;" > 
       Press to show the grid 

    </div> 
</div> 
<div id="hiddenDiv" style="display:none;" > 
    <div id="exampleGrid" style=""> 

    </div> 
</div> 

的Javascript:

var grid; 
    var colModel; 
    Ext.onReady(function() { 
     $("#gridShowClick").bind("click", showGridClick); 
     colModel = [ 
      { 
       header: "Field 1", 
       menuDisabled: true, 
       width: 120, 
       sortable: false 
      }, 
      { 
       header: "Field 2", 
       menuDisabled: true, 
       width: 120, 
       sortable: false 
      }, 
      { 
       header: "Field 3", 
       menuDisabled: true, 
       width: 120, 
       sortable: false 
      }, 
      { 
       header: "Field 4", 
       menuDisabled: true, 
       width: 120, 
       sortable: false 
      }, 
      { 
       header: "Field 5", 
       menuDisabled: true, 
       width: 120, 
       sortable: false 
      } 
     ]; 
     grid = Ext.create('Ext.grid.Panel', { 
      id: "exampleGridPanel", 
      columns: colModel, 
      columnLines: true, 
      renderTo: "exampleGrid" 
     }); 
    }); 
    function showGridClick() { $("#hiddenDiv").show(); } 
+0

我做了一些變通的時間是,我設置了'窗口.setTimeout(hideDiv,300);'所以顯示它300毫秒,然後隱藏我再來一次。但我不認爲這是一件好事。 –

+0

@rahul它有什麼不同,如果我像你一樣做,或者只是把一個函數的名字,就像我一樣。 –

+0

什麼是hideDiv in windows.setTimeout(hideDiv,300);作爲名稱顯示的 – rahul

回答

2
<div id="exampleGrid"></div> 

    grid = Ext.create('Ext.grid.Panel', { 
     id: "exampleGridPanel", 
     columns: colModel, 
     columnLines: true, 
     hidden: true //hidden 
     renderTo: "exampleGrid" 
    }); 

    function showGridClick() { 
     Ext.getCmp('exampleGridPanel').show(); 
    } 

去除<div id="hiddenDiv" style="display:none;" >

應該工作

+0

謝謝你,迷住了。 –

+0

沒問題,但它做的方式不是很好恕我直言)設計和結構應該更加可擴展,可靠和可讀。另外避免在可能的地方使用ID。它可以被視爲快速修復;) – babinik