将shrinkToFit设置为整数有什么影响?

时间:2012-07-05 21:23:48

标签: jqgrid

jqGrid option docs中,它表示你可以将shrinkToFit设置为一个整数但不说它有什么影响。我想知道是否有人知道它是什么。

1 个答案:

答案 0 :(得分:3)

好问题。如果查看grid.jqueryui.js的源代码,可以看到在调整网格大小时,该选项会传递给setGridWidth的内部调用:

$($t).jqGrid('setGridWidth',ui.size.width,opts.shrinkToFit);

然后,如果您查看grid.base.js,可以看到setGridWidth内部如何使用该选项:

setGridWidth : function(nwidth, shrink) {
       return this.each(function(){
          ...
          if(typeof shrink != 'boolean') {
              shrink=$t.p.shrinkToFit;
          }
          ...
          if(shrink ===false && $t.p.forceFit === true) {$t.p.forceFit=false;}
          if(shrink===true) {

由于每个shrink比较都是使用类型检查(===)完成的,如果false是整数,这些比较都是shrinkToFit。如果shrinkToFitforceFit都设置为false,则会产生相同的效果。 setColWidth中也有类似的逻辑。但在这两种情况下,都不会使用shrinkToFit的实际整数值。

jqGrid wiki表示

  

如果shrinkToFit的值是整数,则根据它计算宽度。

但我根本没有看到基于此代码分析的内容。也许这是一个旨在用于未来版本的功能?或许我错过了什么?无论如何,我建议你现在只需将布尔值传递给shrinkToFit