gpt4 book ai didi

jquery - 使用 Ajax 结果填充 Kendo 网格

转载 作者:行者123 更新时间:2023-12-01 06:49:27 25 4
gpt4 key购买 nike

我希望能够使用 ajax 调用的结果来决定我将填充哪个 Kendo 网格。如果我只收到数组中的一个项目,我想填充一个网格,否则我有另一个网格用于多个项目。

我的 jQuery

    $.ajax({
type: "POST",
dataType: "json",
url: 'Item/GetItems/',
data: { number: number },
success: function (data) {

if (data.length == 1) {
var sGrid = $("#SingleGrid").data("kendoGrid").dataSource.data(data);

//I´ve also tried this
//sGrid.refresh();
}
else {
var mGrid = $("#MultipleGrid").data("kendoGrid").dataSource.data(data);

//I´ve also tried this
//mGrid .refresh();
}
},
error: function () {
}
});

我的 Controller 操作

    public ActionResult GetItems([DataSourceRequest] DataSourceRequest request, string number)
{
var items = _idg.GetItems(number);
return Json(items.ToDataSourceResult(request, ModelState));
}

我一直在监视 Firebug,它没有显示任何错误。我试图通过决定填充其中一个网格来防止对服务器的第二次调用。有没有办法像客户端一样强制数据源刷新? (无需调用数据源上的读取函数,这将第二次调用服务器)

######已编辑########

function TestGrid() {
var dataSource = new kendo.data.DataSource({
transport: {
read: {
type: "POST",
dataType: "json",
url: 'Item/GetItems/'
}
},
schema: {
data: function (response) {
// Here the Total is always correct
return response.Total;
}
}
});

dataSource.fetch(function () {
var kendoGrid;
var data = this.data();
//Here the data does not include my Total
alert(data);
if (data.length == 1) {
kendoGrid = $("#SingleGrid").data("kendoGrid");
} else {
kendoGrid = $("#MultipleGrid").data("kendoGrid");
}
kendoGrid.setDataSource(dataSource);
kendoGrid.refresh();
});
}

从上面的示例来看,我似乎无法从 this.data() 获得总数。当我使用 Firebug 进行调试时,我可以看到总数始终是正确的。有什么想法吗?

最佳答案

您可以填充剑道数据源的新实例,加载数据,然后对结果进行操作,设置网格的数据源。也许是这样的:

var dataSource = new kendo.data.DataSource({
transport: {
read: {
type: "POST",
dataType: "json",
url: 'Item/GetItems/',
data: { number: number },
}
}
});

然后从服务器获取数据并对结果进行操作:

dataSource.fetch(function() {
var data = this.data();
var kendoGrid;
if (data.length == 1) {
kendoGrid = $("#SingleGrid").data("kendoGrid");
} else {
kendoGrid = $("#MultipleGrid").data("kendoGrid");
}
// Replace the grids data source with our new populated data source
kendoGrid.setDataSource(dataSource);
kendoGrid.refresh();
});

关于jquery - 使用 Ajax 结果填充 Kendo 网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17295604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com