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】:我使用column
的listeners
属性来监听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,并让列能够被修改