Как изменить таблицу DataTable после ее создания - PullRequest
0 голосов
/ 10 февраля 2011

Я хотел бы изменить таблицу данных YUI по мере выполнения запросов ajax.Так, например, у меня есть 4 ajax-запроса, запрашивающие вещи, которые могут занять от 1 до 10 секунд.Я хотел бы начать создание таблицы, когда запрос 1с завершится, и изменять таблицу снова каждый раз, когда завершается запрос ajax.Есть ли рекомендуемый способ сделать это в целом?

В частности, я хотел бы изменить формат столбца для отображения возможных ошибок, возникающих при обработке строки.Однако ошибка обрабатывается медленно, поэтому было бы полезно сначала отобразить данные, а затем добавить ошибки.

Большое спасибо за любую помощь!

Джейсон

1 Ответ

0 голосов
/ 11 февраля 2011

Я предполагаю, что ваши множественные запросы агрегируют данные столбца.Я также предполагаю, что таблица является статической (не подкачки или сортировки на стороне сервера).

  1. Установите определение столбца для DataTable, чтобы включить все столбцы из всех источников.
  2. Создайте источник данных, указывающий на URL-адрес службы самого быстрого запроса.
  3. Создайте таблицу данных с этим источником данных.
  4. Либо создайте дополнительные источники данных для других служб, либо вызовите YAHOO.util.Connect.asyncRequest.(...) для каждой другой службы
  5. Обратные вызовы для каждого из этих запросов на обслуживание должны выполнять следующие действия:

(псевдокод вперед)

function callback(data) {
    var recordset = myDataTable.getRecordSet(),
        records = recordset.getRecords(),
        i, len, rec;

    for (i = 0, len = records.length; i < len; ++i) {
        rec = records[i].getData(); // will return an object literal with data info
        /* match the record object to the new data and update the record object */
    }

    recordset.setRecords(records);
    myDataTable.render();
}

Таким образом, каждый дополнительный сервис будет добавлять данные на уровне записи, после чего будет обновляться полный пользовательский интерфейс таблицы.

HTH

...