extjs columnmodel,列调整大小

Posted

技术标签:

【中文标题】extjs columnmodel,列调整大小【英文标题】:extjs columnmodel, columns resizing 【发布时间】:2016-04-27 12:56:07 【问题描述】:

如何在以下列模型中监听列的大小调整:

new Ext.grid.ColumnModel(
    columns : [
          ]

我尝试过调整大小、列大小调整、oncolumnresize。他们都没有听一列的宽度变化。我想听一列宽度的变化并相应地执行操作。

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

我也尝试了上述选项,但它们不起作用。

我可以在列侦听器中收听或在 jquery 中处理它吗?哪些可以做,哪些可以正常工作?

注意:我认为我的 extjs 版本是 3

【问题讨论】:

如果你想知道你有哪个版本的extjs,在Chrome中打开你的应用程序,按键盘上的F12打开开发者工具,CTRL + O列出le js文件,现在搜索ext- all.js 或 ext-all-debug.js。在标题中你会看到: 这个文件是 Ext JS 3.4 的一部分。之后,您将能够在 *** 标签上添加 extj3。希望对您有所帮助。 感谢@MichaelLane,我看到了版本,它的 3 【参考方案1】:

我使用columnlisteners属性来监听resize事件来实现它:

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

【讨论】:

我的是 extjs3,resize 不是列的事件。【参考方案2】:

如果您使用的是 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(!) 上。

【讨论】:

但这不会有帮助,因为我不使用网格面板。我也看到了 widthchange 事件,但是当用户从 UI 调整大小时它不会触发。那么有没有其他方法,或者任何类型的jquery,它可以工作吗?

以上是关于extjs columnmodel,列调整大小的主要内容,如果未能解决你的问题,请参考以下文章

具有布局适合和网格的 Extjs 3.3.1 FieldSet 在窗口调整大小时不会调整网格大小

如何持久化 ExtJS 数据网格列隐藏/显示/移动/调整大小?

extjs动态向可编辑表格EditorGridPanel 添加一个列ColumnModel,并让列能够被修改

使行扩展元素,即 extjs 网格和图表在窗口调整大小时调整大小

Extjs:面板内的工具栏未在浏览器调整大小时调整大小

Extjs - 当Compositefield中的项目增长/调整大小时如何调整兄弟姐妹的位置