2010-05-16 1 views
5

У меня есть таблица данных, которая изначально пуста и заполняется после определенного вызова Javascript. После того, как данные будут вставлены в таблицу, я хотел бы сосредоточить все данные в одном из столбцов. Я попытался указать это на этапе инициализации таким образом:JQuery Datatable Question: центрирование данных столбца после ввода данных

dTable = $('#dt').datatable({ 'aoColumns': [ null, null, { "sClass" : "center" }] }); 

Данные в третьей колонке не было сосредоточено после вставки были полными. Я попытался модифицировать aoColumns после вставки и перерисовки таблицы, а также:

dTable.fnSettings().aoColumns[2].sClass = "center"; 
dTable.fnDraw(); 

Это не сработало. Поэтому мой вопрос заключается в том, как мне следует сообщать таблице данных о центрах данных в третьем столбце?

Заранее благодарим за ваши предложения.

Chris

+0

Почему вы не можете использовать CSS? – Mottie

+0

Я бы рекомендовал Firebug для проверки ячеек таблицы, чтобы узнать, какие стили применяются. Возможно, что-то переоценивается? – Favio

+0

@fudgey, я сначала попытался использовать CSS, но безрезультатно. Каждый раз, когда я добавляю строку, я использую вызов dTable.fnAddRow (r) для добавления данных в массив r. Высказываясь вокруг с Firebug, как предложила Favio, вы видите, что тело таблицы имеет определенную структуру, созданную подключаемым модулем данных для поддержки различных действий. Возможно, я мог бы использовать CSS, чтобы исправить проблему, учитывая то, что я видел в структуре, но это далеко не изящно. Там должен быть лучший способ. – Chris

ответ

2

Если я вас правильно понял, ваша таблица получает несколько строк с несколькими столбцами из данных AJAX. Третья колонка должна быть центрирована. Попробуйте это:

$.ajax({ 
    url: 'ajax/test.html', 
    success: function(data) { //after AJAX completes 
    //fill the table. 
    $('#dt').children('tr').each(function(){ //for each row 
     $(this).children('td').eq(2).attr('align', 'center'); //center the third column. 
    }); 
    } 
}); 

В качестве альтернативы, если вам не нравится, используя атрибуты, вы можете установить атрибут стиля, используя .attr(attributeName, value) или с помощью .css(propertyName, value), или добавить класс с .addClass().

+0

Спасибо Брэдли. Я сделал что-то подобное, возвращаясь к JQuery, чтобы заполнить таблицу перед созданием datatable. Таким образом, я мог бы добавить класс для записей в третьем столбце и центрировать их с помощью CSS. Теперь у меня возникают проблемы с обновлением datatable после его создания. Требуется больше исследований. – Chris

Смежные вопросы