В этом посте я объясню, как добавить новый источник столбца во время выполнения в DataGrid с помощью Devextreme. Иногда нам нужно отобразить несколько дополнительных новых столбцов в источнике столбцов DataGrid в соответствии с нашими бизнес-требованиями.

На приведенном ниже изображении сетки есть пять столбцов, и мы хотим добавить один или несколько столбцов в эту сетку во время выполнения.

Я хочу добавить столбец Address в эту сетку во время выполнения, для этого я буду использовать следующий код
Let newColumnArray = {"DataField":"Address","caption":"Address"}; // for adding one column,
$('#gridContainer').dxDataGrid({
dataSource: {
store: {
type: 'odata',
url: 'https://js.devexpress.com/Demos/SalesViewer/odata/DaySaleDtoes',
key: 'Id',
beforeSend(request) {
request.params.startDate = '2020-05-10';
request.params.endDate = '2020-05-15';
},
},
},
paging: {
pageSize: 10,
},
pager: {
......
},
remoteOperations: false,
searchPanel: {
........
},
allowColumnReordering: true,
rowAlternationEnabled: true,
showBorders: true,
columns: [
{
............
},
{
............
},
newColumnArray ,
], });});

newColumnArray — в этой переменной я назначил один столбец dataField - Адрес и подпись

Если вам нужно добавить несколько столбцов в сетку, для этого нам нужно выполнить следующую функцию
var newColumnArrayDataSource=[];
Var newColumnArray= prepareColumnSourceFields();
function prepareColumnSourceFields() {
var originalColumnSource = [];
var customColumns ;
var additionalColumnFields = [{"DataField":"PhoneNumber","caption":"Phone No Name"},{"DataField":"Address","caption":"Address Name"},..............];
if (additionalColumnFields != null) {
for (i = 0; i < additionalColumnFields.length; i++) {
var caption = additionalColumnFields[i].caption;
var dataField=additionalColumnFields[i].DataField;
customColumns = { 'dataField': additionalColumnFields[i].DataField.toLowerCase(), 'caption': caption, 'visible': true, 'width': 180 };
originalColumnSource.push(customColumns);
}
}
return originalColumnSource;
}

prepareColumnSourceFields() — в этой функции я должен получить значение newColumn из этой дополнительной переменной ColumnFields.

«additionalColumnFields» — эта переменная содержит несколько значений столбцов в зависимости от того, что я должен добавить в столбец во время выполнения. После итераций все новые данные массива столбцов сохраняются в этой переменной originalColumnSource и возвращаются.

Study Section предоставляет большой список сертификационных экзаменов на своей онлайн-платформе. Французский сертификационный экзамен может помочь вам подтвердить свои навыки общения на французском языке. Независимо от того, являетесь ли вы новичком в этом языке или являетесь его экспертом, этот сертификационный экзамен по французскому языку может проверить способность любого владеть французским языком.

Первоначально опубликовано на https://studysection.com 3 января 2022 г.