0

我创建了许多 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 并设置每列的最小宽度,这些也不起作用。

4

1 回答 1

2
https://github.com/mleibman/SlickGrid/issues/17

发现这似乎在起作用。:

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

!c.resizable

至:

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

每个用户 tobiasstrebitzer

于 2013-08-29T15:44:52.933 回答