2012-03-29 3 views
0

Я использую функцию фильтра и замороженные функции столбцов в одно и то же время, и они, похоже, конфликтуют. Вот визуальные проблемы:При использовании jQGrid setFrozenColumns и filterToolbar вместе столбцы исчезают

Перед (при обновлении):

col1 (замороженный) | col2 | col3 | col4 | col5 | col6

фильтр строка
срок поиска | | | |

данные | данные | данные | данные | данные | данные

данные | данные | данные | данные | данные | данные

данные | данные | данные | данные | данные | данные

данные | данные | данные | данные | данные | данные

данные | данные | данные | данные | данные | данные

данные | данные | данные | данные | данные | Данные

...

Но после ввода фильтр

col1 (замороженный) |||||||

строка фильтра новый поисковый запрос |||||||

данные |||||||

данные |||||||

данные |||||||

данные |||||||

данные |||||||

данные |||||||

...

Линии |||||| представляют собой столбцы «сэндвичи» вместе - их данные и ширина исчезли.

2 строки кода, которые кажутся в конфликте являются:

loadComplete: функция() {

$ .getScript (»<% = Url.Content (" ~/Имена/PopulateFilterBar/«)%> ');

jQuery ("# ​​list"). JqGrid ('setFrozenColumns');

},

Первое утверждение является вызов функции в контроллере MVC, что gnerates на следующее:

JQuery ("[ID = gs_Name]").Вал ("Компания"); }

Если я удалю первую команду, второй работает отлично, но я теряю вид фильтрующих слов при обновлении. Если я удалю второй, я потеряю функцию замороженного столбца.

Кто-нибудь видел эту ошибку?

Кроме того, я замечаю, что выбор строк не всегда работает, когда столбцы заморожены. Я заблокировал функцию замороженного столбца, пока не смогу решить эту проблему.

Я использую jqGrid, все новейшие версии jQuery, в VS2010 ASP.NET, .NET 4, MVC.

ответ

0

Обновлено Ответ: Было высказано предположение, что я делаю все вызовы для обновления сетки только «один раз». Первоначально я использовал метод LoadComplete для обновления сетки, это необязательно вызывало функции на каждые. Поэтому я изменил свой код, чтобы удалить loadComplete(). См. Новый код ниже.

Я также изменил методологию заполнения панели фильтров - теперь это делается полностью на уровне javascript и только один раз.

Однако я, к сожалению, все еще испытываю неприятное поведение, как описано выше. Пожалуйста, если кто-нибудь видел это, он высоко оценил ваш ответ.

обновленный код:

<script type="text/javascript"> 

    $(function() { 

     <%= Html.ToJsColumnNames("dynamicGridDataColumnNames", Model.GridColumns) %> 
     <%= Html.ToJsColumns("dynamicGridDataColumns", Model.GridColumns, "") %> 
     <%= Html.ToJsShowHideColums("dynamicGridDataShowHideColumns", Model.GridColumns) %> 
     <%= Html.ToJsGetCurrentFilters("dynamicGridDataCurrentFilters") %> 

     document.title = "CLEAR Masterlist"; 

     jQuery("#list").jqGrid({ 
      url: '<%=Url.Action("DynamicGridData")%>', 
      datatype: 'json', 
      mtype: 'POST', 
      colNames: dynamicGridDataColumnNames, 
      colModel: dynamicGridDataColumns, 
      pager: jQuery('#pager'), 
      pagerpos: 'center', 
      rowNum: 100, 
      rowList: [100, 100000000], 
      sortname: "Name", 
      sortorder: "asc", 
      height: 600, 
      width: 1235, 
      loadui: "block", 
      shrinkToFit: false, 
      multiselect: true, 
      multiboxonly: false, 
      caption: 'List of Names' 
     }); 

     jQuery("#list").jqGrid('navGrid', '#pager', { 
      del: false, add: false, edit: false, search: false, refresh: false, 
      view: false, height: 250, jqModal: false, closeOnEscape: true 
     }); 

     $("option[value=100000000]").text('All'); 

     jQuery("#list").jqGrid('filterToolbar', { autosearch: true, searchOnEnter: true, stringResult: true 
     }); 

     jQuery("#list").jqGrid('setFrozenColumns'); 

     var fdiv = jQuery("#list").fhDiv; 
     var cf = dynamicGridDataCurrentFilters.split("&&"); 
     for (var x = 0; x < cf.length; x++) { 
      var f = cf[x].split('~'); 
      if (f.length > 1) { 
       var fld = "[id=gs_" + f[0] + "]"; 
       jQuery(fld, fdiv).val(f[1]); 
      } 
     } 

    }); 

</script> 
Смежные вопросы