2012-08-30 85 views
1

使用jQGrid v4.2和jQuery 1.8我無法讓搜索工作。當我點擊搜索按鈕什麼都沒有發生......jQGrid搜索按鈕什麼也不做

我使用v4.2的原因是因爲它的最新版本的jqgrid nuget包(令人討厭的作者還沒有更新它)。

有沒有人有解決方法?我會用最新版本測試它,看看它是否是一個錯誤。在這個例子中,它不適用於datatype:local,但它也不適用於具有json數據的網格。難道我做錯了什麼?

<link href="../../Content/themes/base/minified/jquery-ui.min.css" rel="stylesheet" type="text/css" /> 
<link href="../../Content/jquery.jqGrid/ui.jqgrid.css" rel="stylesheet" type="text/css" /> 

<script src="../../Scripts/jquery-1.8.0.min.js" type="text/javascript"></script> 
<script src="../../Scripts/jquery-ui-1.8.23.js" type="text/javascript"></script> 

<script type="text/javascript" src="../../Scripts/i18n/grid.locale-en.js"></script> 
<script src="../../Scripts/jquery.jqGrid.min.js" type="text/javascript"></script> 


<script type="text/javascript"> 
    var mydata = [{ id: "1", name: "foo" }, { id: "2", name: "bar"}]; 

    jQuery(document).ready(function() { 
     jQuery("#lgrid").jqGrid({ data: mydata, 
      datatype: "local", 
      height: 150, 
      width: 600, 
      rowNum: 10, 
      rowList: [10, 20, 30], 
      colNames: ['id', 'name'], 
      colModel: [{ name: 'id', index: 'id', width: 60, sorttype: "int" }, 
            { name: 'name', index: 'name', width: 60}], 
      pager: "#pgrid", 
      viewrecords: true, 
      caption: "Contacts" 
     }); 

     jQuery("#lgrid").jqGrid('navGrid', '#pgrid', { del: false, add: false, edit: false }); 
    });  
    </script> 

<table id="lgrid"></table> 
<div id="pgrid"></div> 

編輯:工程與jqGrid的v4.4.1 ...所以我猜它的錯誤。它是一種可惜我不能再使用NuGet包:(

+0

訣竅是沒有一個jqGrid NuGet包由實際的jqGrid作者維護 - 在某種程度上它們通常不會更新等。 – tpeczek

+0

@tpeczek是的,我意識到這一點。請參閱http://stackoverflow.com/questions/11504041/options-if-a-nuget-package-hasnt-been-updated。我試圖聯繫最流行的jqGrid軟件包的主人,要求他更新它,但不幸的是沒有得到答案。 – woggles

+0

我會自己創建一個nuget包(有多個所有者),但所有jqGrid的好名字也已被採納 – woggles

回答

2

我同樣的問題掙扎,經過我,而我發現,jqGrid的搜索不會使用jQuery 1.8.0工作的原因:

在我jquery.jqGrid.js(v 4.3.2),我發現這個:

if ($("#" + $.jgrid.jqID(IDs.themodal)).html() !== null) { 
     showFilter($("#fbox_" + $.jgrid.jqID(+$t.p.id))); 
} 

在我的文件是上線6863,但您可能需要尋找它,因爲我的文件可能會有點修飾相比,

問題是,$([id])。html()在較早的jQuery版本中評估爲null,而在jQuery 1.8.0中則評估爲undefined!由於(undefined!== null)爲true並且(null!== null)爲false,因此代碼在不同版本的jQuery中做了不同的事情。

我做了什麼修復它,並使其與jQuery 1.8.0一起工作是將比較器從!==更改爲!=。這是可行的,因爲(null!= null)和(null!= undefined)的結果都是真的!

希望這可以幫助!

+0

謝謝......它似乎已在最新的jqGrid版本中得到修復 – woggles