Плагин jQuery Datatables: как указать атрибуты строки при добавлении строк в таблицу - PullRequest
8 голосов
/ 11 января 2011

Я задавался вопросом, сталкивался ли кто-нибудь еще с этой проблемой. Когда я изначально строю свою таблицу в своем представлении, я использую собственный атрибут (назовите его customerID) в каждой строке таблицы для хранения информации, которую мне нужно передать для вызова ajax. Однако я также динамически добавляю строки в таблицу и не могу понять, как передать обратно ту же самую информацию (customerID), которая будет вставлена ​​в атрибут для строки. В настоящее время единственное, что я делаю при добавлении строк, - это создание массива массивов строк, которые отображаются точно в мои столбцы. Это отлично работает, но нет места для отправки дополнительной информации.

Думаю, мне не нужно хранить это в атрибуте, если есть другой способ отправить эту информацию обратно в представление при добавлении строк. У кого-нибудь есть идеи по этому поводу?

Спасибо.

Ответы [ 2 ]

1 голос
/ 17 января 2011

Мне удалось решить эту проблему с помощью встроенных функций плагина, чтобы циклически проходить по строкам.На сервере я создал закрытый класс, содержащий поля для всей необходимой мне информации, как только я вернусь к клиенту.Это включает в себя фактические значения для ячеек таблицы, а также информацию для размещения в атрибутах.Я создаю их список (один объект = ценность одной строки), сериализую их и отправляю обратно вызывающему методу ajax.Следующий код предполагает, что я получил сериализованную строку объектов назад, и я в JS:

function(rowsToAdd) {

    var rowList = JSON.parse(rowsToAdd); // rows come back as object representations of table rows, with properties

    $.each(rowList, function(index, row) {
        var rowStringArray = [row.Prop1, row.Prop2, row.Prop3, row.Prop4];
        var rowPos = tableObject.fnAddData(rowStringArray); // add the row through the plugin, and receive the row's index in return
        var tableRowElement = tableObject.fnGetNodes(rowPos[0]); // get reference to <tr> element just added

        $(tableRowElement).attr('attributeINeeded', row.AttributeProp).attr('anotherAttributeINeeded', row.AttributeProp2);
    });
}
0 голосов
/ 01 февраля 2013

Используйте обратный вызов fnCreatedRow , чтобы изменить узел TR после его создания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...