2015-05-01 177 views
3

enter image description here無法正常顯示

我使用jQuery的手風琴,每當頁面刷新和手風琴內slickgrid Slickgrid內jQuery的手風琴列被擴大了網格內的列都失靈和破壞。我試過用

grid.resizeCanvas(); 

在我的手風琴裏無濟於事。

這是我的代碼。

var grid = (grid1, grid2, grid3); 
     $('#accordion').accordion({ 
      collapsible: true, 

      beforeActivate: function (event, ui) { 
       grid.resizeCanvas(); 
       // The accordion believes a panel is being opened 
       if (ui.newHeader[0]) { 
        var currHeader = ui.newHeader; 
        var currContent = currHeader.next('.ui-accordion-content'); 
        // The accordion believes a panel is being closed 
       } else { 
        var currHeader = ui.oldHeader; 
        var currContent = currHeader.next('.ui-accordion-content'); 
       } 



       // Since we've changed the default behavior, this detects the actual status 
       var isPanelSelected = currHeader.attr('aria-selected') == 'true'; 

       // Toggle the panel's header 
       currHeader.toggleClass('ui-corner-all', isPanelSelected).toggleClass('accordion-header-active ui-state-active ui-corner-top', !isPanelSelected).attr('aria-selected', ((!isPanelSelected).toString())); 

       // Toggle the panel's icon 
       currHeader.children('.ui-icon').toggleClass('ui-icon-triangle-1-e', isPanelSelected).toggleClass('ui-icon-triangle-1-s', !isPanelSelected); 

       // Toggle the panel's content 

       currContent.toggleClass('accordion-content-active', !isPanelSelected) 
       if (isPanelSelected) { currContent.slideUp(); } else { currContent.slideDown(); } 

       return false; // Cancels the default action 

      } 
     }); 

更新 我一直在使用

var grid = [grid1, grid2, grid3]; 
    $("#accordion").accordion({ 
      afterActivate: function (event, ui) { 
       grid[0].resizeCanvas(); 
      } 
     }); 

這也沒有工作不幸嘗試。

+2

嘗試使'網格'數組。 'var grid = [grid1,grid2,grid3];'然後訪問它們像'grid [0] .resizeCanvas();' –

+0

嘗試,目前沒有任何成功。當您關閉手風琴時,所有列在關閉動畫完成之前重新組織。 –

+0

手風琴上有'afterActivate'功能嗎?通常情況下,容器div需要可見並具有網格佔用的高度。 – Edward

回答

1

我用window.location.reload()並在頁面重新加載網格列按預期一致。我已經嘗試在遞歸方法調用中進行此操作,而不是重新加載頁面,並遇到了您描述的問題。

如果您可以刷新頁面而不是進行遞歸調用,那麼這將解決問題。

3

它看起來像「resizeCanvas()」方法不影響列。 我討厭這樣做,但再次嘗試遍歷列,並調整它們的大小,讓我知道是否適合你: 例

var grid = [grid1, grid2, grid3]; 
    $("#accordion").accordion({ 
      afterActivate: function (event, ui) { 
       var cols = grid[0].getColumns(); 
       cols[0].width = 120; 
       grid[0].setColumns(cols);` 
      } 
     }); 

您不必遍歷列,像我一樣。你知道列名和大小,所以你可以做到這一點

cols["Policy Type"].width = 120; 

等..讓我知道這是否有助於

+0

非常好的主意,但沒有產生結果。 –