【问题标题】:Slickgrid force columns to fit viewport size when enablecolumnorder equals false and resizable equals false?当enablecolumnorder等于false并且可调整大小等于false时,Slickgrid强制列适合视口大小?
【发布时间】:2013-08-29 14:13:49
【问题描述】:

我创建了许多 slickgrids,但这是我创建的第一个,我需要让列不可调整大小和可重新排序(可拖动)。我真正需要的是让我的列始终适合我的视口,但不能调整大小/重新排序,并且在屏幕调整大小(增加或减少)期间不能水平扩展。

我发现如果我把它放到列选项中。 :'

resizable: false

这将阻止它们调整大小,但这样做时,它会将页面加载时的列调整为我为每列指定的宽度。这通常是我想要的,但我的视口有一个 1300 像素的特定宽度。因此,如果我将像素设置得恰到好处,网格将在视口中表现良好并且看起来很棒。但是,我正在开发的这个应用程序需要最小化或最大化屏幕的能力,这样做后,我现在设置为特定宽度的列保持该宽度,并且出现一个水平滚动条,将我的列推到 1300 像素范围之外。

如果我删除列宽并保留 forcefitcolumns,然后我的列真的很小而且看起来很糟糕。

我的专栏之一。 :

{ id: "Mode", name: "Mode", field: "Mode", width: 125, sortable: true, formatter: TaskNameFormatter, editor: Slick.Editors.Text, resizable: false },

我的网格选项示例。 :

var GridOptions = {
        showHeaderRow: true,
        showHeaderRow: true,
        headerRowHeight: 30,
        explicitInitialization: true,
        enableCellNavigation: true,
        enableTextSelectionOnCells: true,
        forceFitColumns: true,
        multiColumnSort: true,
        topPanelHeight: 25,
        autoHeight: true,
        enableColumnReorder: false
    };

我的网格 div 示例。 :

<div id="slickGrid" class="grid-body" style="min-width: 800px; max-width: 1300px; height: auto;"></div>

显然我已经调整了网格大小。 :

$(window).resize(function () {
  Grid.resizeCanvas();
});

我只是想知道您如何处理这种情况,基本上我需要我的列水平填充视口并保持该大小,即使在窗口调整大小期间也是如此。想法?以前有没有人解决过这个问题?如果我能弄清楚如何动态地将我的列保持为适合视口的大小,我可以在窗口调整大小期间再次调用它。

***注意我也尝试过 Grid.autosizeColumns 并设置每列的最小宽度,这些也不起作用。

【问题讨论】:

    标签: javascript slickgrid


    【解决方案1】:
    https://github.com/mleibman/SlickGrid/issues/17
    

    发现这似乎可以解决问题。 :

    您需要更改列调整大小属性的条件:

    !c.resizable
    

    到:

    (!c.resizable && options.forceFitColumns !== true)
    

    每用户 tobiasstrebitzer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-10
      • 2016-03-24
      • 2023-03-09
      • 2018-11-06
      • 1970-01-01
      • 2011-01-25
      • 1970-01-01
      • 2013-05-27
      相关资源
      最近更新 更多