[英]SlickGrid Custom Filter
在這里搜索,似乎找不到答案。
我使用SlickGrid設置了一個非常復雜的網格。
搜索功能位於自定義工具欄中。 我將它連接到網格函數的調用。
例如:
[HTML]
<input name='name' id='id' class='searchable'>
[JS]
$('.searchable').on('change' , function() {
var searchTerm = {};
searchTerm[$(this).attr('name')] = $(this).val();
dataview.setFilterArgs(searchTerm);
dataview.refresh();
});
我可以看到參數傳遞到了自定義過濾器
var customFilter = function(item, args) {
***$.each(args , function(key , val) {
if (val!=='' && val!==null) {
return (item[key] == val);
}
});***
return true;
}
[!]問題是當您位於$ .each內部時,如果您“返回”它只會跳過循環。 但是沒有任何東西可以返回到函數之外。
但是網格上沒有發生任何事情。 沒有得到過濾
這是我的設置
dataview = new Slick.Data.DataView();
grid = new Slick.Grid(grid_id , dataview , columns , options);
grid.selectionModel(new Slick.RowSelectionModel());
grid.init();
dataview.beginUpdate();
dataview.setItems(gridData);
dataview.setFilter(customFilter);
dataview.endUpdate();
我一直在關注github上的兩個過濾器示例。 但我看不出有什么不同
如果我使用以下命令初始化數據視圖
dataview = new Slick.Data.DataView({inlineFilters: true});
我收到一個錯誤:
未捕獲的SyntaxError:未定義標簽“ _coreloop”(slick.dataview.js行:639)
嘗試閱讀代碼,但缺乏注釋……所以我真的不知道出了什么問題。
有人遇到過類似的問題嗎?
如果將dataView和columnFilters聲明為全局變量,則可以調用此函數:
function SetfilterOnGrid(SearchPhrase) {
columnFilters = {"1": SearchPhrase};
dataView.refresh();
}
數字“ 1”是列ID,SearchPhrase是您在網格中搜索的短語
至於清除過濾器,您可以使用此功能:
function ClearFilterOnGrid()
{
columnFilters = {};
dataView.refresh();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.