0

我想知道两者的区别

$("#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());

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

而上面的代码是写在剑道上传成功事件上的。

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

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

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

4

1 回答 1

1

文档中所述,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
于 2013-04-24T08:03:13.270 回答