2011-03-25 69 views
2

使用jqGridExport導出數據後,我們使用jqGridImport導入數據。首先問題是底部欄選項沒有回來,所以我在後面添加了代碼。所以,代碼看起來像:通過jqGridImport搜索信息還原JQGrid時不正確

$("#list").jqGridImport({imptype: 'jsonstring', impstring: gridSettings})
.jqGrid('navGrid','#pager', { edit: false, add: false, del: false, search: true, refresh:true },
{},{},{},{closeOnEscape: true, multipleSearch: true, closeAfterSearch: true},{});

的gridSettings字符串的重要組成部分是:
"postData":{"_search":true,
"nd":1301031279941,
"rows":20,
"page":1,
"sidx":"a.ID",
"sord":"asc",
"filters":{"groupOp":"AND","rules": [{"field":"fname","op":"bw","data":"T"}]}
}

一切都來了罰款除了搜索。從上面的postData搜索一行是正確的,但有第二個搜索行,我只能將其描述爲默認搜索行。如果我從多個搜索框中刪除該行,所有內容都應該如此。

所以我的問題是第一,爲什麼multipleSearch不恢復使用jqGridImport恢復?
其次是有一種方法來以編程方式刪除第二個搜索行嗎?

回答

2

導航器底部欄的行爲是正確的,因爲它不是作爲網格的一部分實現的。所以你必須另外設置它。您可以編寫自己的導出和導入設置。

與將在搜索對話框中添加額外的最後一行的情況確實是一個小問題,可固定在下面的代碼:

var grid = $("#list"); 
... 

grid.searchGrid(prmSearch); 
if (typeof(grid[0].p.postData.filters) === "string" && 
    grid[0].p.postData.filters.length>0) { 

    $("#fbox_"+grid[0].id).searchFilter().del(); 
} 
$("#fbox_"+grid[0].id).searchFilter().close(); 

您可以看到相應的演示here。這是從我的另一個old answerthe demo的小修改。

順便說一句,下一個版本的jqGrid中使用的新過濾器不會有問題(請參閱演示here)。

+0

電網[0] .p.postData.filters不斷回來的對象不是字符串... – 2011-03-25 15:30:35

+0

甚至當我刪除if語句searchFilter不會被刪除... – 2011-03-25 15:35:01

+0

@ user541319:你怎麼能在我的例子中看到所有的工作,所以'grid [0] .p.postData.filters'類型'字符串'。如果你有一個對象而不是字符串,那麼你在你的代碼之前做了錯誤的事情。你應該發佈你使用的代碼。我在開始看到''過濾器':{「groupOp」:「AND」,「rules」:[{「field」:「fname」,「op」:「bw」,「data」:「T」 }]}你發佈的是明確的wrond值。例如,必須使用'JSON.stringify'將該值轉換爲JSON。我不知道它是你的bug還是'jqGridExport' /'jqGridImport'中的錯誤。 – Oleg 2011-03-25 15:51:26