Kendo数据源模型 - _data [0]和get(0)之间的区别

时间:2013-04-24 07:25:51

标签: kendo-ui

我想知道

之间的区别
$("#uploadedFile").val(e.files[0].name);
var model = $("#blueprint_listview").data("kendoListView").dataSource.get(0);        
model.set("filename", $("#uploadedFile").val());

并且

$("#uploadedFile").val(e.files[0].name);
var model = $("#blueprint_listview").data("kendoListView").dataSource._data[0];        
model.set("filename", $("#uploadedFile").val());

我正在上传一个可编辑的列表视图。

以上代码是在kendo上传的成功事件上编写的。

第二个代码适用于插入和更新。

但是,第一个代码适用于插入,但是对于更新,它显示错误,上面写着 - “模型未定义”

我想知道可能是什么原因?

1 个答案:

答案 0 :(得分:1)

documentation中所述,get检索具有相应ID的记录。这样,当插入新记录时,似乎它的默认ID为0,这就是get(0) === _data[0]的原因,但是当您更新列表视图时,会给您一个“真实”ID(> = 1)新行并且不再有id = 0的项目,因此model为空。

另一方面,内部方法_data是一个数组,列表视图的所有行按其在列表视图中的位置顺序排列。但是,如果要访问此属性,则等效的“公共”方法为at

$("#blueprint_listview").data("kendoListView").dataSource._data[0] === 
   $("#blueprint_listview").data("kendoListView").dataSource.at(0); // allways true