это возможно яснее: У меня есть миллиард записей данных для treegrid, я использую плагин jqwidget treegrid с помощью «виртуального режима», но процесс редактирования для данных обновления не работает, поскольку он не отправляет данные на сервер , Как я могу исправить проблему.Jqwidget Treegrid
Или мне нужно изменить плагин, не могли бы вы дать мне несколько рекомендаций, чтобы найти лучший плагин для treegrid.
это мой код
$ ("# jqxTreeGrid") jqxTreeGrid ({ ширина:. '100%', иконки: правда, autoRowHeight: правда, showHeader: правда, columnsHeight: 30 , columnsResize: правда, columnsReorder: правда, фильтруемых: правда, filterMode: 'продвинутого', Сортируемые: правда, выгружаемой: ложный, pagerMode: 'продвинутые', altRows: правда,
showToolbar: правда, showStatusbar: правда, toolbarHeight: 35, редактируемые: правда,
editSettings: {saveOnPageChange: правда, saveOnBlur: правда, saveOnSelectionChange: правда, cancelOnEsc: правда, saveOnEnter: правда, editSingleCell: ложь, editOnDoubleClick: true, editOnF2: true},
pageSizeOptions: ['5', '10', '25', '50', '100', '200', '500', '1000'], virtualModeRecordCreating: функция (запись) { если (запись.is_leaf) { запись.leaf = true; } }, virtualModeCreateRecords: функция (expandedRecord, сделано) { источник вар = { Datatype: "JSON", поля данных: [ {имя: 'group_pin', тип: 'строка'}, {имя : 'root_of', type: 'string'}, {name: 'user_pin_owner', type: 'string'}, {name: 'name', type: 'string'}, {name: 'name_alias', type: 'string'}, {name: 'url', type: 'string'}, {name: 'avatar', type: 'string'}, {name: 'type', type: 'string' }, {name: 'address', ty pe: 'string'}, {name: 'icon', type: 'string'}, {name: 'is_leaf', type: 'bool'}, {name: 'description', type: 'string' } ], типа: 'GET', кэш: ложь, ID: 'group_pin', иерархия: { keyDataField: {имя: 'group_pin'}, parentDataField: {имя: 'root_of'} }, URL: 'http://localhost/app/listdata', root: "listData", addRow: function (rowID, rowData, position, parentID, commit) { commit (true); новыйRowID = rowID; }, updateRow: функция (ROWID, ROWDATA, совершают) { $ .ajax ({ типа: "POST", URL: 'http://localhost/app/save', DATATYPE: 'JSON', данные: $.param (rowdata), error: function (xhr, textStatus, errorThrown) { commit (false); }, success: function (data, textStatus) { if (data ['response'] == true) { commit (true);
}
else
{
commit(false);
}
}
});
}
};
var dataAdapter = new $.jqx.dataAdapter(source,{
beforeSend: function (xhr) { },
downloadComplete: function (data, status, xhr) { },
loadComplete: function (data) {
done(dataAdapter.records);
$("#clearParentGroupbuttom").addClass("disabled");
if(data.listData.length > 0)
{
for(var i=0; i<data.listData.length; i++)
{
if(data.listData[i].root_of != '')
{
$("#jqxTreeGrid").jqxTreeGrid('expandRow', data.listData[i].root_of);
}
}
}
},
beforeLoadComplete: function (records) { },
loadError: function (xhr, textStatus, errorThrown) {
done(false);
},
formatData: function (data) {
if (expandedRecord == null)
{
data.parent_code = ""
}
else
{
data.parent_code = expandedRecord.group_pin;
}
var pageSize = $('#jqxTreeGrid').jqxTreeGrid('pageSize');
return data;
}
});
dataAdapter.dataBind();
},
columns: [
{
text: 'Name',
pinned: true,
dataField: 'group_pin',
editable: false,
align: 'center',
hidden: true,
sortable: true,
filterable: true,
width: 150
},{
text: 'Name',
pinned: true,
dataField: 'name',
align: 'center',
minWidth: 200,
width: 350,
cellsRenderer: function (rowKey, column, cellValue, rowData, cellText) {
return cellValue + " (<b style='font-size:10px;'>Pin: " + rowData["group_pin"] + "</b>)";
},
validation: function (cell, value) {
if (value == "")
{
return { result: false, message: "<?php echo trans('garputala.required_textbox'); ?>" };
}
return true;
}
},{
text: 'Owner',
pinned: true,
dataField: 'user_pin_owner',
editable: false,
hidden: true,
align: 'center',
cellsAlign: 'center',
width: 100
}
]
});
Благодаря Rido
Это кажется очень неясным. Можете ли вы уточнить, в чем проблема, с которой вы столкнулись, возможно, показать какой-то код? –