筛选视图上的SlickGrid CSS样式错误

时间:2014-10-13 18:32:09

标签: slickgrid

我有一个数据视图工作得很好的SlickGrid,使用syncGridSelection同步网格和数据视图以进行修改和删除选择,但是更改后的CSS样式会出现一个有趣的问题。当我选择不包含实际更改的行的过滤器集时,更改的行CSS stlye将应用于网格中的相同“可见”行号。排序工作正常,但我注意到过滤器无法正常工作。有人有解决方法吗?你可以为我尽可能多地粘贴信息和代码,因为我是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);

            });
        }

1 个答案:

答案 0 :(得分:1)

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

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

                };
            }