2013-07-26 4 views
0

У меня есть таблица, которая работает как JQuery datatable. У меня есть следующие требованияJQuery Datatables OnSort столбец обновления с рисунком из другого столбца

Когда пользователь сортирует колонку затем

  1. мне нужно indentify столбца
  2. В зависимости от этого столбца сортировки Я хочу, чтобы получить значение из другого столбца, который является невидимым для пользователь
  3. С этим значением я хочу обновить первый столбец в таблице. Это видимый столбец

Я вразумлял событие сортировки в таблицу с функцией называется eventFired согласно примеру на http://datatables.net/release-datatables/examples/advanced_init/dt_events.html

лучшее, что я мог заставить себя ниже

function eventFired(type) {  
      var oTable = $('#tabOverlayLeagueTable').dataTable(); //select table 
      var oSettings = oTable.fnSettings(); //get settings 
      var sortByindex = oSettings.aaSorting[0][0];//get index of sort column 
      //var nNodes = oTable.fnGetNodes(); // I am not sure if I should use this 
      var data = oTable.fnGetData(); // I get the data from this call 

      // loop then data rows 
      for (var i = 0; i < data.length; i++) { 

       // update the first column in the table 
       // with a specific column (this is a hidden column). In 
       //example its cashiers rank figure 
       oTable.fnUpdate(data[i].CashierRank, i, 0); 
      }    
} 

Задача

  1. Возможно, это не лучший способ решить мою проблему
  2. Я бы хотел получить столбец data[i].CashierRank по индексу, а не по имени
  3. Код не работает. Кажется, навсегда!

ответ

0

я надеюсь, что это помогает

проблемы 1: Наглядно Я бы сказал, что лучше обновлять всю таблицу, когда вы закончите все изменения данных, только один раз.

Проблема 2: Вы можете получить имя свойства по индексу обращающегося к описанию столбцов:

var colName = oSettings.aoColumns[sortByindex].mData 

Проблема 3: Это странно. Это просто, так ... Когда вы говорите, что это петли навсегда, вы имеете в виду, что индекс стремится к бесконечности, не останавливаясь на длине? Я думаю, что, возможно, вы выполняете эту функцию каждый раз, когда таблица выполняет рендеринг, o что таблица считает, что она сортируется при обновлении этих столбцов. В этом случае вы создаете бесконечный цикл, потому что вы вызываете рендер внутри for (с помощью fnUpdate) и обновляете всю таблицу после изменения всех значений, как я сказал в 1. это должно быть разрешено.

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