我正在尝试使用JSON数据填充KendoUI网格,其中服务器返回总行数以及数据,但是我在使serverPaging正常工作时遇到了一些麻烦.我创建并分配网格的dataSource,如下所示:
var oDS = new kendo.data.DataSource({
schema: {
data: "data",
total: "total"
},
data: self.grdTableData,
serverPaging: true,
pageSise: 50,
total: joOutput["TotalRecords"]
});
grdTableResults.setDataSource(oDS);
Run Code Online (Sandbox Code Playgroud)
第一页显示了939条记录中的前50条,但只有1页(导航箭头从不响应任何东西),我看到NaN - 939项目的NaN和网格中心的点旋转圆圈消失了.
在我看过的所有示例中,有一点不同的是,我的$ .ajax调用和.done中JSON数据的处理不使用"transport:read"但我正在考虑如何发送数据并将其取回应该无关紧要(或者是因为每个页面请求都是新的服务器读取?).但我认为我没有做足够的事情来正确处理服务器分页,即使我似乎设置的数据源值类似于http://jsfiddle.net/rusev/Lnkug/中的示例中设置的数据源值.然后是我不确定的"take"和"skip"值,但我确实有"startIndex"和"rowsPerPage",我发送到可以在那里使用的服务器.我假设网格可以告诉我我正在显示哪个页面我可以适当地设置我的"startIndex",如果我有一个"每页项目数"下拉,我可以重置我的"rowsPerPage"值吗?
无论如何,抱歉所有的新手问题.任何帮助和建议真的很感激.谢谢!
我有一个带有KendoUI DropDownList的应用程序,该应用程序填充了数据库中的表列表和最初使用空数组的列atrribute设置的网格:
... 列: [] ...
目的是从列表中选择一个表,将表名发送到服务器并让服务器返回包含列名的JSON数据和来自"SELECT*FROM table"查询的数据.数据按预期返回,第一次通过我可以使用如下,其中"self"只是我视图/模型中对网格的引用:
self.columns.removeAll();
for (var i = 0; i < joOutput["Cols"].length; i++) {
var col = { title: joOutput["Cols"][i], field: joOutput["Cols"][i] };
self.columns.push(col);
}
Run Code Online (Sandbox Code Playgroud)
提取数据并将其分配给网格数据源后,网格会正确显示正确的列标题和数据.但是,当我从列表中选择另一个表并从服务器接收数据时,网格显示不会更新,即使通过执行上述代码似乎已更新网格列.屏幕上结果的结尾是列标题是第一个网格中列的名称以及第二个查询返回的行中的空行数.
正如http://www.kendoui.com/forums/ui/grid/dynamically-add-new-column.aspx上的论坛帖子所见,这种对列的动态操作似乎很难做到,但该帖子已经过了现在已经一岁了,我希望现在已经取得了一些进展,特别是在3月20日新版本的网络直播中.所以我猜问题仍然存在:我追求的甚至是可能的还是我的SOL?谢谢.