设置datasource.transport.read功能时如何设置Kendo格总计?
How to set Kendo Grid total when datasource.transport.read is set to function?
Kendo version: ^2019.3.1023
假设我有一个如下所示的数据源,其中 read prop 设置为一个函数,并且返回的数据用于 Kendo Grid.
向 XHR function/method 的 success
回调传递了一个对象,该对象包含一个“页面”(作为分页查询结果一部分的对象数组),以及总结果计数查询(所有“页面”上的记录数)。
<script>
var dataSource = new kendo.data.DataSource({
transport: {
read: function(options) {
// make JSONP request to https://demos.telerik.com/kendo-ui/service/products
$.ajax({
url: "https://demos.telerik.com/kendo-ui/service/products",
dataType: "jsonp", // "jsonp" is required for cross-domain requests; use "json" for same-domain requests
success: function(result) {
// notify the data source that the request succeeded
options.success(result);
},
error: function(result) {
// notify the data source that the request failed
options.error(result);
}
});
}
}
});
dataSource.fetch(function() {
console.log(dataSource.view().length); // displays "77"
});
</script>
如何设置网格总数?
我尝试使用 TypeScript getter 在 schema 中设置它,如下所示,但这不起作用。
{ schema: { total: this.paginatedRecordsCount }}
我还在 <kendo-datasource>
和 <kendo-grid>
中尝试了 :total="total"
,其中 total 又是 TypeScript getter,类似于 this example,但是没有效果(即使我硬编码值)。
我找到了这个类型定义,但没有用:
interface DataSourceTransportOptions {
success: (data?: any) => void;
error: (error?: any) => void;
data: any;
}
这是 options.success
在运行时的主体:
function(data) {
that._ranges = [];
that.success(data, params);
deferred.resolve();
}
当 paginatedTransactionsCount
是 TypeScript getter.
时,在 schema
中设置 total
无效
total: this.paginatedRecordsCount
事实证明,您可以使用闭包从处理 XHR 的方法的成功回调(在我的例子中为 Axios.post
)访问包装器对象(包含 count
),以便回调可以通过下面的 schema.total
属性 以网格“可见”的方式更新 count
道具。
total: () => this.paginatedRecordsCountWrapper.count
Kendo version: ^2019.3.1023
假设我有一个如下所示的数据源,其中 read prop 设置为一个函数,并且返回的数据用于 Kendo Grid.
向 XHR function/method 的 success
回调传递了一个对象,该对象包含一个“页面”(作为分页查询结果一部分的对象数组),以及总结果计数查询(所有“页面”上的记录数)。
<script>
var dataSource = new kendo.data.DataSource({
transport: {
read: function(options) {
// make JSONP request to https://demos.telerik.com/kendo-ui/service/products
$.ajax({
url: "https://demos.telerik.com/kendo-ui/service/products",
dataType: "jsonp", // "jsonp" is required for cross-domain requests; use "json" for same-domain requests
success: function(result) {
// notify the data source that the request succeeded
options.success(result);
},
error: function(result) {
// notify the data source that the request failed
options.error(result);
}
});
}
}
});
dataSource.fetch(function() {
console.log(dataSource.view().length); // displays "77"
});
</script>
如何设置网格总数?
我尝试使用 TypeScript getter 在 schema 中设置它,如下所示,但这不起作用。
{ schema: { total: this.paginatedRecordsCount }}
我还在 <kendo-datasource>
和 <kendo-grid>
中尝试了 :total="total"
,其中 total 又是 TypeScript getter,类似于 this example,但是没有效果(即使我硬编码值)。
我找到了这个类型定义,但没有用:
interface DataSourceTransportOptions {
success: (data?: any) => void;
error: (error?: any) => void;
data: any;
}
这是 options.success
在运行时的主体:
function(data) {
that._ranges = [];
that.success(data, params);
deferred.resolve();
}
当 paginatedTransactionsCount
是 TypeScript getter.
schema
中设置 total
无效
total: this.paginatedRecordsCount
事实证明,您可以使用闭包从处理 XHR 的方法的成功回调(在我的例子中为 Axios.post
)访问包装器对象(包含 count
),以便回调可以通过下面的 schema.total
属性 以网格“可见”的方式更新 count
道具。
total: () => this.paginatedRecordsCountWrapper.count