簡體   English   中英

SlickGrid自定義過濾器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM