【问题标题】:SlickGrid CSS styles wrong on filtered view过滤视图上的 SlickGrid CSS 样式错误
【发布时间】:2014-10-13 18:32:09
【问题描述】:

我有一个 SlickGrid,它的 dataview 工作得很好,grid 和 dataview 使用 syncGridSelection 同步以修改和删除选择,但是在更改 CSS 样式时会出现一个有趣的问题。当我选择一个不包含实际更改行的过滤器集时,更改的行 CSS 样式将应用于网格中相同的“可见”行号。排序工作正常,但我注意到过滤器不起作用。有没有人可以解决这个问题?您能否为我粘贴尽可能多的信息和代码,因为我是 SlickGrid 的新手。我粘贴了加载网格的代码。

function LoadGridData() {
            $.getJSON('@Url.Action("GetConfigurations")', function (rows) {
                if (rows.length > 0) {
                    if (rows[0].id = 'undefined') {
                        $(rows).each(function (index) {
                            rows[index].newAttribute = "id"
                            rows[index]["id"] = index;
                        });
                    }
                };
                data = rows;
                dataView.beginUpdate();
                dataView.setItems(data);
                dataView.setFilter(filter);
                dataView.endUpdate();

                // Refresh the data render
                grid.invalidate();
                grid.render();
                grid.setSelectedRows([]);

                dataView.syncGridSelection(grid, true);

            });
        }

【问题讨论】:

    标签: slickgrid


    【解决方案1】:

    调试后,我发现我使用了一个旧示例,在函数 getItemMetadata 中标记 css 已更改。正确的代码如下。以前我引用数据[行]。将 DataView 同步到 Grid 时,getItem() 方法返回正确的行。在这种情况下,我的 DataState 是我自己在视图模型上更改的指示器。

      dataView.getItemMetadata = function (row) {
                var item = this.getItem(row);
                if (item && item.DataState == 2) {
                    return {
                        "cssClasses":
                            "changed"
    
                    };
                }
    

    【讨论】:

      猜你喜欢
      • 2012-02-29
      • 2013-12-11
      • 2015-04-28
      • 2012-06-15
      • 1970-01-01
      • 2013-06-22
      • 2011-09-29
      • 2012-11-15
      • 1970-01-01
      相关资源
      最近更新 更多