我正在研究一些小部件。它不使用任何网络服务作为数据源。我使用 jQuery 从普通网页解析一些数据,并希望将这些数据显示为 dashcode 列表。我遵循了 Dashcode 中的 listDataSource 示例代码。
var listDataSource = {
_rowData: ['Item 1', 'Item 2', 'Item 3'],
numberOfRows: function() {
alert("Row data now is: "+this._rowData);
alert("number of rows: "+this._rowData.length);
return this._rowData.length;
},
prepareRow: function(rowElement, rowIndex, templateElements) {
if (templateElements.rowLabel) {
templateElements.rowLabel.innerText = this._rowData[rowIndex];
}
rowElement.ondblclick = function(event) {
// Do something interesting
alert("Row "+rowIndex);
};
}
};
在属性检查器中,我选择了动态数据类型并选择了这个 listDataSource 作为数据源。然后,我以这种方式向 listDataSource 的 _rowData 添加一项:
listDataSource._rowData.push("New Item 4");
并以这种方式重新加载我的列表:
var mylist = document.getElementById("list").object;
mylist.reloadData();
我知道,函数 numberOfRows 和 prepareRow 在我添加新项目后被调用(通过警报消息)。警报打印 _rowData 并按预期添加了新项目。但是我的小部件中的列表不会刷新!为什么?我实在想不通。是否有一些功能 reloadUI() 或什么?如果您现在可以解决我的问题,请让我上路。谢谢!