Здравствуйте. Использую devExpress для js есть таблица dxdataGrid c datasource и столбец реализующий выпадающий список через lookup, ссылающийся на свой dataSource, Пагинация включена в обоих случаях
this.$scope.dxGridLocalConfig = {
dataSource: AService.dataSource,
paging: {
enabled: true,
pageSize: 25
},
columns: [{
dataField: 'SId',
caption: 'S',
lookup: {
dataSource: {
store: SService.store,
paginate: true,
pageSize: 25,
},
valueExpr: 'Id',
displayExpr: 'FullName'
}
}]
}
проблема заключается в том что загрузке страницы с таким гридом, Сначала идет запрос на источник с данными с учетом пагинации для всей таблицы (я использую odata DataSource)
http://localhost/odata/A?%24orderby=Id&%24top=25&%24count=true
затем идет запрос к
http://localhost/odata/S
который запрашивает ВСЕ записи вместо того что бы или ничего не запрашивать или только первые 25. DataSource у меня описаны через
this.store = ODataService.context.S;
this.dataSource = new DevExpress.data.DataSource({
store: this.store,
paginate: true,
pageSize: 25,
});
и контекст в свою очередь
this.context = new DevExpress.data.ODataContext({
url: `localhost/odata/`,
entities: {
S: {
key: 'Id',
keyType: 'Int32'
},
При это при щелчке внутри связанного поля, открывается поле с прокруткой и отрабатывает как надо, то есть есть постепенная подгрузка запросами вида
http://localhost/odata/S?%24skip=50&%24top=25
Единственно чего я хочу избежать это загрузки всех данных из связанных полей, потому как данных там очень много и получается что в таблице с 3мя записями в фоновом режиме тянется еще 1,5млн, соответственно все это очень тормозит. Так быть не должно
UPD: Подготовил (точнее адаптировал) пример проблемы
/// <reference path="C:/Program Files (x86)/DevExpress 16.1/DevExtreme/Sources/Lib/ts/jquery.d.ts" />
/// <reference path="C:/Program Files (x86)/DevExpress 16.1/DevExtreme/Sources/Lib/ts/dx.all.d.ts" />
$(function() {
var context = new DevExpress.data.ODataContext({
url: "http://services.odata.org/V4/Northwind/Northwind.svc/",
entities: {
Categories: {
key: "CategoryID",
keyType: "Int32",
},
Suppliers: {
key: "SupplierID",
keyType: "Int32",
},
Products: {
name: "Products",
key: "ProductID",
expand: ["Category"],
keyType: "Int32"
}
},
version: 4
})
$("#grid").dxDataGrid({
dataSource: context.Products,
paging: {
enabled: true,
pageSize: 1
},
columns: ["ProductID", {
dataField: "ProductName",
},
{
dataField: "SupplierID",
lookup: {
dataSource: {
store: context.Suppliers,
paginate: true,
pagesize: 3
},
displayExpr: "ContactName",
valueExpr: "SupplierID"
}
},
{
dataField: "CategoryID",
lookup: {
dataSource: {
store: context.Categories,
paginate: true,
pagesize: 3
},
displayExpr: "CategoryName",
valueExpr: "CategoryID"
}
}
],
pagesize: 5,
filterRow: {
visible: true
},
headerFilter: {
visible: true
},
groupPanel: {
visible: true
}
});
});
<!DOCTYPE html>
<html>
<head>
<title>DevExtreme jQuery site</title>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="http://cdn3.devexpress.com/jslib/16.2.5/css/dx.common.css" />
<link rel="stylesheet" type="text/css" href="http://cdn3.devexpress.com/jslib/16.2.5/css/dx.light.css" />
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.2.4.min.js"></script>
<script type="text/javascript" src="http://cdn3.devexpress.com/jslib/16.2.5/js/dx.all.js"></script>
<script type="text/javascript" src="16.2.4.js"></script>
</head>
<body>
<div id="grid"></div>
</body>
</html>
установлена размер страницы в 1 запись, но при загрузке страницы Suppliers при помощи запроса получают все 29 (а если бы их было не 29 а 1.5 млн) хотя нужна всего то одна, чтобы полностью отобразить страницу. может я где косячу?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
При изменении class="main main-active", block active меняется в диве main, а не main-activeКак исправить что бы active в div
Не могу найти, где задается hover-эффект для элементов навигацииПри наведении на элемент меню появляется белый бэкграунд (см
пытаюсь применить плагин fancybox для галереи, чтобы при клике на одну из картинок открывалось модальное окно, в котором будет слайдер