我有一个数据视图工作得很好的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);
});
}
答案 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"
};
}