2016-04-27 54 views
0

如何監聽列在下面列模型的大小調整列:ExtJS的columnmodel,調整

new Ext.grid.ColumnModel({ 
    columns : [{ 
      }] 

我試圖調整大小,columnresize,oncolumnresize。他們沒有一個正在監聽列中的寬度變化。我想聽一列的寬度變化並相應地執行操作。

$(element).width().bind('change',...); 
$(element).bind('resize', function() { 

我曾嘗試上述選項,以及他們不工作。

我可以在列偵聽器中偵聽或在jquery中處理它。哪些可以完成,哪些工作正常?

注:我覺得我的ExtJS的版本是3

+0

如果您想知道您使用的是哪個版本的extjs,請在Chrome中打開您的應用,按鍵盤上的F12打開開發者工具,按CTRL + O列出le js文件,現在搜索ext-all.js或ext - 全debug.js。在標題中你會看到:這個文件是Ext JS 3.4的一部分。之後,您將能夠在您的StackOverflow標籤上添加extj3。希望這個幫助。 –

+0

謝謝@MichaelLane,我看到了這個版本,它的3 –

回答

1

我用listeners屬性columnresize事件實現它:

columns : [{ 
      text: 'Name', 
      dataIndex: 'Name', 
      flex: 1, 
      listeners:{ 
       resize:function (ct, width, eOpts) { 
         //your code goes here 
       } 
       } 
      }] 
+0

是extjs3,resize不是列的事件。 –

0

如果您正在使用的ExtJS 3,你應該看看納入ExtJS 3.4.0的文檔中,而不是納入任何更新的文檔。

如果你這樣做,你會看到that there are only very few events available on columns, and resize isn't one of them

你現在可以停止搜索,但如果我是你,我不會。

因爲如果你看一下ColumnModel,你會發現事件widthchange,當列的寬度以編程方式更改其不火,而且很文檔錄入有事件涉及您搜索,這是columnresize上的GridPanel (!)。

+0

但這不會有幫助,因爲我不使用網格面板。我也看到了widthchange事件,但當用戶從UI調整大小時,它不會觸發。那麼有沒有其他方式,或任何類型的jQuery,它可以工作嗎? –