Я хочу установить фильтр по умолчанию для загрузки страницы в slickgrid. Это приведенный ниже код при вызове slicgrid.Как установить фильтр по умолчанию на загрузку страницы в slickgrid
$(document).ready(function() {
LoadslickGrid();
});
function LoadSlickGrid(txtHRMFilter) {
$(function() {
var data = [];
$.ajax({
url: '/Home/GetDetails/?strFilter=' + txtFilter,
dataType: "json",
type: "POST",
async: false,
contentType: "application/json",
success: function (result) {
data = result.desc;
}
});
// Need to use a DataView for the filter plugin
//var dataView = new Slick.Data.DataView();
grid = new Slick.Grid("#grid", dataView, columns, options);
grid.setSelectionModel(new Slick.CellSelectionModel());
dataView.onRowCountChanged.subscribe(function (e, args) {
grid.updateRowCount();
grid.render();
});
dataView.onRowsChanged.subscribe(function (e, args) {
grid.invalidateRows(args.rows);
grid.render();
});
dataView.beginUpdate();
dataView.setItems(data);
dataView.setFilter(filter);
dataView.endUpdate();
var filterPlugin = new Ext.Plugins.HeaderFilter({sortAvailable: false});
// This event is fired when a filter is selected
filterPlugin.onFilterApplied.subscribe(function() {
dataView.refresh();
grid.resetActiveCell();
// Excel like status bar at the bottom
var status;
if (dataView.getLength() === dataView.getItems().length) {
status = "";
} else {
status = dataView.getLength() + ' OF ' + dataView.getItems().length + ' RECORDS FOUND';
}
$('#status-label').text(status);
});
var pager = new Slick.Controls.Pager(dataView, grid, $("#pager"));
// Event fired when a menu option is selected
filterPlugin.onCommand.subscribe(function (e, args) {
dataView.fastSort(args.column.field, args.command === "sort-asc");
});
grid.registerPlugin(filterPlugin);
var overlayPlugin = new Ext.Plugins.Overlays({});
// Event fires when a range is selected
overlayPlugin.onFillUpDown.subscribe(function (e, args) {
var column = grid.getColumns()[args.range.fromCell];
// Ensure the column is editable
if (!column.editor) {
return;
}
// Find the initial value
var value = dataView.getItem(args.range.fromRow)[column.field];
dataView.beginUpdate();
// Copy the value down
for (var i = args.range.fromRow + 1; i <= args.range.toRow; i++) {
dataView.getItem(i)[column.field] = value;
grid.invalidateRow(i);
}
dataView.endUpdate();
grid.render();
});
grid.setSelectionModel(new Slick.RowSelectionModel({ selectActiveRow: false }));
grid.registerPlugin(checkboxSelector);
grid.registerPlugin(overlayPlugin);
grid.init();
function filter(item) {
var columns = grid.getColumns();
var value = true;
for (var i = 0; i < columns.length; i++) {
var col = columns[i];
var filterValues = col.filterValues;
if (filterValues && filterValues.length > 0) {
value = value & _.contains(filterValues, item[col.field]);
}
}
return value;
}
$("#divLoading").fadeOut("fast");
if (data.length == 0) {
$("#divLoading").fadeOut("fast");
$.ajax().done(function() { alert("No records found"); });
$("#txtHRMFilter").val('');
}
});
}
Фильтр работает нормально, но я хочу показать значение фильтра по умолчанию на Pageload
Этих деталей колонок
var columns = [];
var columnFilters = {};
columns.push(checkboxSelector.getColumnDefinition());
columns[1] = { id: "id", name: "Id", field: "id", sortable: true, width: 103, formatter: docNoFormatter };
columns[2] = { id: "FirstName", name: "First Name", field: "FirstName", sortable: true, width: 135, formatter: formatter };
columns[3] = { id: "LastName", name: "Last Name", field: "LastName", sortable: true, width: 135, formatter: formatter };
columns[4] = { id: "Flag", name: " Flag", field: "HighRiskFlag", sortable: true, width: 128, formatter: formatter };
//columns[4] = { id: "Date", name: " Date", field: "JoiningDate", sortable: true, width: 125, formatter: formatter };
columns[5] = { id: "Category", name: "Category", field: "Category", sortable: true, width: 250, formatter: formatter };
columns[6] = { id: "Date", name: "Date", field: "RenewalDate", sortable: true, width: 125, formatter: formatter };
columns[7] = { id: "State", name: "State", field: "State", sortable: true, width: 100, formatter: formatter };
Заранее спасибо
Пожалуйста, настройте https://jsfiddle.net/ с образцами данных JSON и любыми внешними ресурсами для гладкой сетки. –
Пожалуйста, предоставьте несколько деталей. – cauchy