Как обновить источник данных без полного воссоздания таблицы?
Вы имеете в виду без использования «нового» утверждения? Если да, то мне не приходилось делать это самому, но я часто использую YUI. Я заметил, что есть метод deleteRows, который вы можете использовать для удаления всех строк, 0 по длине таблицы, а затем использовать addRows, который принимает литеральный массив, такой как ваш, и индекс, 0, в этом случае.
Вы пробовали это?
Изменить: взгляните на этот пример. То, что вы хотите сделать, определенно может быть сделано. Таблица обновляется локально с заданным интервалом с использованием метода setInterval (что неудивительно). Взглянув на то, что делает setInterval, вы увидите, что он вызывает makeConnection для экземпляра источника данных. Этот метод звучит так, как будто он делает удаленный вызов, но это не обязательно.
Давайте посмотрим на пару строк из примера.
// Set up polling
var myCallback = {
success: myDataTable.onDataReturnInitializeTable,
failure: function() {
YAHOO.log("Polling failure", "error");
},
scope: myDataTable
}
myDataSource.setInterval(5000, null, myCallback)
последняя строка может быть вызвана один раз (или по запросу, как вам нужно) вместо интервала, переписав ее следующим образом:
myDataSource.makeConnection(null, myCallBack)
который вызывает метод onDataReturnInitializeTable. мог бы позвонить напрямую, что имело бы больше смысла.
В любом случае, просто следуйте примеру и выньте детали, которые вам не нужны. В конечном итоге похоже, что метод onDataReturnInitializeTable является ключевым.
Надеюсь, это поможет.
person
Keith Bentrup
schedule
25.06.2009