一直在用EXTJS,不得不说它真的很强大,最近比较闲,重新看了一下程序中的js,看到autoExpandColumn这个配置项,虽然大多数都写了,但是貌似没有起到应有的效果,查看了api,没有找到能够起到效果的使用方式,又在网上查了很久,也没有找到合适的答案,后来只能是自己研究,看到一个前辈的文章,受到启发忽然开窍,现整理记录。
以前我一直认为autoExpandColumn这个配置项,是要跟viewConfig: {forceFit: true}这个东西一起使用,就会有效果,因为在使用autoExpandColumn这个的时候,如果把viewConfig: {forceFit: true}这个删掉,程序就会报错,但这个想法是错误的,之所有加上viewConfig: {forceFit: true}不会报错,是因为forceFit设置为true的时候,autoExpandColumn会被忽略,这个可以在api中找到。
autoExpandColumn的作用是自动伸展,占满剩余区域。一般使用在列比较少,并且大多数列都比较窄,有一列比较宽的情况下,当然什么时候使用,还是得按照实际情况确定。
使用的时候主要有三点要注意的。1、在Ext.grid.GridPanel这个里面一定不要添加viewConfig: {forceFit: true}配置项,原因上面已经讲到了。2、autoExpandColumn后面跟的是列模型中要自动伸展列的id,或者列的序号,注意这里的序号从1开始,如果使用id则需要给id加引号,例如autoExpandColumn:"MC"这样写,或者是autoExpandColumn:2这样写。3、如果autoExpandColumn后面写的是自动伸展列的id,那么一定要给这个列加上id属性。第二段中讲到的会报错,就是因为我没有给列模型加id,我当时以为autoExpandColumn后面写得是字段的名称(这是错的噢)呢。
还有一点需要注意,EXTJS我用的版本是3.1,其他版本的使用方法可能会不同,需要自己测试一下。
如果还有遇到类似问题的,希望这篇文章对你们有所帮助。有不明白的地方,欢迎留言,我们一起学习。