Javascript 将现有剑道网格绑定到新的JSON对象
我的页面上有以下Javascript 将现有剑道网格绑定到新的JSON对象,javascript,json,kendo-ui,kendo-grid,Javascript,Json,Kendo Ui,Kendo Grid,我的页面上有以下kendoGrid,加载时从指定URL接收JSON对象 但稍后我想将它绑定到从其他源接收的其他JSON数据。有没有一种方法可以将包含网格的现有数据绑定到一个新的JSON对象 $('#grid').kendoGrid({ sortable: true, groupable: true, scrollable: true, pageable: { pageSizes: 9 }, dataSource: {
kendoGrid
,加载时从指定URL接收JSON
对象
但稍后我想将它绑定到从其他源接收的其他JSON
数据。有没有一种方法可以将包含网格的现有数据绑定到一个新的JSON
对象
$('#grid').kendoGrid({
sortable: true,
groupable: true,
scrollable: true,
pageable: {
pageSizes: 9
},
dataSource: {
transport: {
read: {
url: "../Get/JsonData",
dataType: "Json"
}
}
},
columns: [
{ field: "name", title: "Name", width: 100 },
... ...
]
});
新JSON的结构是否相同(相同的列和相同的数据模型)?如果是,则选择“是”,只需使用
transport.read
或transport.read.url
,而不是将其定义为字符串
将其定义为返回一个或另一个的函数
请记住,这可能是一个对象或函数。对于也会发生同样的情况,您可以将数据源中的所有数据替换为:
var newData = [ "some", "data", "array" ];
var gridWidget = $('#grid').data("kendoGrid");
gridWidget.dataSource.data(newData);
或者,您可以为网格提供一个全新的数据源(我推荐这种方法):
当然,在我的示例中,
newData
就是从函数返回的任何数据。在页面加载时,我希望它从url
加载,但在调用函数后,我希望它用函数返回的新JSON
数据替换现有数据。因此,使用url进行初始加载,然后然后使用grid.dataSource.data(newJSON)代码>用于替换它。在查找数据后,它会给我此错误未捕获引用错误:oSId未定义
,oSId
是我在for a command按钮中使用的一列
{command:{text:{Options],click:showHideOptions},title:,width:“90px”,属性:{“id:”,}它在控制台中说:[]没有方法“fetch”
其中[]是newDataUsing中的JSON使用哪种方法?调用dataSource.data()
或grid.setDataSource()
?我猜您正在传递一个数组,其中应该使用grid.setDataSource()
传递一个DataSource
,我正在传递一个JSON
对象,在您的情况下,这个对象就是数据
对象,我尝试在您初始化数据
对象的地方给出我的对象,但没有起作用。如何将从服务器theObject
获取的JSON
对象转换为数据源?var-DataSource=new-kendo.data.DataSource({data:JSON.parse(someJsonString)})代码>
var newData = new kendo.data.DataSource({
data: [ "some", "data", "array" ]
});
var gridWidget = $('#grid').data("kendoGrid");
gridWidget.setDataSource(newData);