1

jqGrid 选项文档中,它说您可以将 shrinkToFit 设置为整数,但没有说明它有什么影响。我想知道是否有人知道它是什么。

4

1 回答 1

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比较都是使用类型检查(with ===)完成的,因此它们都将是falseifshrinkToFit是一个整数。shrinkToFit如果和forceFit都设置为 ,这与您将获得的效果相同false。中也有类似的逻辑setColWidthshrinkToFit但在这两种情况下,都不会使用实际的整数值。

jqGrid wiki指出

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

但是基于此代码分析,我只是看不到这一点。也许这是一个为未来版本准备的功能?或者,也许我错过了什么?无论如何,我建议您现在只需将布尔值传递给shrinkToFit.

于 2012-07-06T13:42:56.437 回答