私はいくつかのウィジェットに取り組んでいます。データソースにWebサービスを使用しません。通常のWebページからjQueryを使用して一部のデータを解析し、このデータをダッシュコードリストとして表示したいと思います。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にもう1つのアイテムを追加します。
listDataSource._rowData.push("New Item 4");
この方法でリストをリロードします。
var mylist = document.getElementById("list").object;
mylist.reloadData();
新しいアイテムを追加した後(アラートメッセージによって)、関数numberOfRowsとprepareRowが呼び出されることはわかっています。Alertは、期待どおりに新しいアイテムが追加された_rowDataを出力します。しかし、私のウィジェットのリストは更新されません!なんで?私は本当にそれを理解することはできません。関数reloadUI()などはありますか?あなたが私の問題の解決策になったら、私を途中に置いてください。ありがとう!