2014-10-13 2 views
0

У меня есть SlickGrid с dataview, работающим довольно хорошо, grid и dataview синхронизируются для изменения и удаления выбранных параметров с помощью syncGridSelection, однако интересная проблема возникает в измененных стилях CSS. Измененные строки CSS stlye применяются к одному и тому же «видимому» номеру строки в сетке, когда я выбираю набор фильтров, который не включает в себя фактические измененные строки. Сорт работает отлично, но я заметил, что фильтр не работает. Кто-нибудь может исправить это? Можете ли вы вставить как можно больше информации и кода для меня, потому что я новичок в SlickGrid. Я вставил код, который загружает сетку.Стили 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); 

      }); 
     } 

ответ

0

После отладки я обнаружил, что я использовал старый пример разметки CSS изменен в функции getItemMetadata. Ниже приведен правильный код. Раньше я ссылался на данные [row]. При синхронизации DataView с сеткой метод getItem() возвращает правильную строку. В этом случае мой DataState - это мой собственный измененный индикатор в модели представления.

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

       }; 
      }