ДЛЯ ДОКУМЕНТАЦИИ: Я нашел проблему и решение:
Мы используем цифры c id в нашем наборе данных (например, 1,2,3, ...). Где-то в коде сетка запутывается и отображает неправильные столбцы с идентификаторами: Когда я спрашиваю div с grid.getHeaderRowColumn (col.id) и заполняю его col.id, он показывает другой идентификатор, чем col.id! Нечего и говорить, что в то же время не все колонны найдены (поэтому не все фильтры можно было установить с моей первоначальной проблемой). Замена идентификатора на строку («id1», «id2», «id3», ...) решила проблему!
Я не знаю, является ли это ошибкой или просто невозможностью для динамических c столбцов, но использование только строк в качестве идентификаторов пока что помогает. Спасибо @ghiscoding за помощь.
ОРИГИНАЛЬНЫЙ ВОПРОС:
У меня странная проблема:
Когда я строю свою скользящую сетку, не все столбцы имеют фильтр-поле ввода в строке заголовка (хотя они должны иметь, относительно моих определений столбцов).
Когда я добавляю (удаляю) столбцы, другие / или другие фильтры появляются / исчезают без изменения других определений столбцов. Таким образом, это кажется случайным образом (хотя при использовании тех же столбцов одни и те же фильтры появляются / исчезают).
Используя обычную скользящую сетку, я могу установить эти фильтры вручную, чтобы исправить эту проблему. Но как я могу сделать это с angular -slickgrid?
Любые предложения?
Я использую angular -slickgrid версии 2.15.4.
EDIT
это мои gridOptions и ColumnDefinitions. (они создаются динамически, но это из инструментов разработчика непосредственно перед инициализацией сетки)
columnDefinitions: {
0: {id: 6, …}
1: {id: 2, …}
2: {
id: 4
fieldtype: "string"
name: "deliveryaddressadditionalline"
json_translate_property: null
field: "deliveryaddressadditionalline"
detailparams: {edit: true, tab: {…}, card: {…}}
gridparams: {show: true, edit: false}
filterable: true
sortable: true
type: 1
editor: {model: ƒ}
filter: {model: ƒ}
grouping: {getter: "deliveryaddressadditionalline", collapsed: false, formatter: ƒ}
rerenderOnResize: true
}
3: {
id: "edit"
name: ""
field: ""
width: 30
formatter: ƒ (row, cell, value, columnDef, dataContext)
onCellClick: (e, args) => { this.gotoDetailPane(e, args, detailInfo); }
gridparams: {show: true}
fieldtype: "edit"
}
4: {id: 1, fieldtype: "string", name: "id", json_translate_property: null, field: "id", …}
}
gridOptions: {
enableColumnPicker: false
headerMenu: {hideColumnHideCommand: true}
enableGridMenu: false
enableAutoResize: true
autoResize: {containerId: "grid-container", sidePadding: 15}
enableSorting: undefined
autoEdit: false
editable: true
enableCellNavigation: true
enableFiltering: true
rowSelectionOptions: {selectActiveRow: true}
enableRowSelection: true
showHeaderRow: true
showTopPanel: false
enableDraggableGrouping: true
createPreHeaderPanel: true
showPreHeaderPanel: false
preHeaderPanelHeight: 40
draggableGrouping: {
dropPlaceHolderText: "Drop a column header here to group by the column",
deleteIconCssClass: "fa fa-times",
onGroupChanged: ƒ,
onExtensionRegistered: ƒ
}
explicitInitialization: true
}
и это результат (несколько ситуаций: столбцы перетасовываются, фильтры появляются случайным образом, в то время как код тот же ):