2012-03-29 59 views
0

我使用的過濾器行和列的凍結,同時配備了,他們似乎會發生衝突。這裏是一個可視化的問題:使用的jqGrid的setFrozenColumns和filterToolbar一起,列消失

(上刷新)之前:

COL1(冷凍)| col2 | col3 | col4 | col5 | COL6

過濾行
搜索詞| | | |

數據|數據|數據|數據|數據|數據

數據|數據|數據|數據|數據|數據

數據|數據|數據|數據|數據|數據

數據|數據|數據|數據|數據|數據

數據|數據|數據|數據|數據|數據

數據|數據|數據|數據|數據|數據

...

但之後進入過濾器

COL1(凍)|||||||

過濾行 新的搜索字詞|||||||

data |||||||

data |||||||

數據|||||||

data |||||||

數據|||||||

數據|||||||

...

的線條||||||代表「夾在一起」的列 - 它們的數據和寬度已經消失。

代碼的2行,似乎是在衝突是:

loadComplete:函數(){

$ .getScript(」 <%= Url.Content(「〜/名稱/ PopulateFilterBar/「)%>');

jQuery的( 「#列表」)的jqGrid( 'setFrozenColumns');

},

的第一個語句是在MVC控制器的函數gnerates的下面的呼叫:

jQuery的( 「[ID = gs_Name]」)。VAL( 「公司」); }

如果我刪除第一個命令,第二個工作得很好,但我失去了刷新過濾器單詞的外觀。如果我刪除第二個,我失去了凍結列功能。

有沒有人看到這個錯誤?

此外,我注意到列凍結時行的選擇似乎並不總是工作。我已經放棄了凍結列功能,直到我可以解決此問題。

我在VS2010 ASP.NET,.NET 4,MVC中使用jqGrid,所有最新版本的jQuery。

回答

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> 
相關問題