我怎样才能得到SlickGrid标题过滤器出现在网格负载上
本文关键字:过滤器 网格 负载 标题 SlickGrid | 更新日期: 2023-09-27 18:07:13
我使用MVC c#/Razor,我的过滤工作完全,标题输入只是不出现当页面加载。我使用以下代码片段设置输入:
grid.onHeaderRowCellRendered.subscribe(function (e, args) {
$(args.node).empty();
$("<input type='text'>")
.data("columnId", args.column.id)
.val(columnFilters[args.column.id])
.appendTo(args.node);
});
但是,为了显示输入,我需要首先对列重新排序。我假设reorder列函数正在调用onHeaderRowCellRendered函数,然后创建这些输入。我的问题是,为什么不是onHeaderRowCellRendered函数调用时,网格加载在第一个地方,我怎么能让它运行时,网格被创建,或者,我怎么能只是得到输入文本框出现?
下面有更多代码:
grid = new Slick.Grid("#versionGrid", filteredData, columns, options);
$(grid.getHeaderRow()).delegate(":input", "change keyup", function (e) {
var columnId = $(this).data("columnId");
if (columnId != null) {
columnFilters[columnId] = $.trim($(this).val());
var localData = JSON.parse(JSON.stringify(slickdata));
filteredData = filterData(columnFilters, localData);
grid.setData(filteredData);
$("#versionGrid").show();
}
});
grid.autosizeColumns();
$("#versionGrid").show();
grid.onHeaderRowCellRendered.subscribe(function (e, args) {
$(args.node).empty();
$("<input type='text'>")
.data("columnId", args.column.id)
.val(columnFilters[args.column.id])
.appendTo(args.node);
});
为了实现这一点,我只需要自己调用一次过滤器创建代码。
function appendFiltersCreators(e, sender){
...
}
$(function () {
slickgrid.onColumnsReordered.subscribe(appendFiltersCreators);
appendFiltersCreators(null, {"grid": slickgrid});
});
我使用不同的事件,但它应该在你的情况下工作。