javascript - Manually change data items in datasource -
i have following datasource data set array.
var dataarray = [ { id: 1, name: "roota", parentid: null }, { id: 2, name: "childa", parentid: 1 }, { id: 3, name: "rootb", parentid: null }, { id: 4, name: "childb", parentid: 3 }, { id: 5, name: "rootc", parentid: null } ]; var treelistdatasource = new kendo.data.treelistdatasource({ data: dataarray, schema: { model: { id: "id", fields: { parentid: { field: "parentid", type: "number", nullable: true }, id: { field: "id", type: "number" } } } } }); this works.
now want change items in dataarray to:
var newdata = [ { id: 6, name: "rootd", parentid: null }, { id: 7, name: "childd", parentid: 6 }, { id: 8, name: "roote", parentid: null } ]; i tried:
- just setting it:
dataarray = newdata; - setting via
data()method in kendo datasource:treelistdatasource.data(newdata)
but grid doesn't display new values. instead says "no records".
here's demo.
i think there kind of bug parentid field won't modified field parentid after initiation. can solve create whole datasource definition again.
your code should this:
<kendo-treelist id="treelist" k-options="treelistoptions"></kendo-treelist> $scope.change = function() { var treelist = $("#treelist").data().kendotreelist; var newdata = [ { id: 6, name: "rootd", parentid: null }, { id: 7, name: "childd", parentid: 6 }, { id: 8, name: "roote", parentid: null } ]; var newds = new kendo.data.treelistdatasource({ data: newdata, schema: { model: { id: "id", fields: { parentid: { field: "parentid", nullable: true }, id: { field: "id", type: "number" } } } } }); treelist.setdatasource(newds); };
Comments
Post a Comment