2013-04-09 2 views
1

Я новичок в datatable jquery plugin. Я застрял в этом более двух дней. У меня есть JSON данные, я до сих пор не могу загрузить таблицу и я также хочу, чтобы назначить первый столбец быть идентификатор строкиНазначить идентификатор для строки данных из json-данных

Вот HTML:

<table cellpadding="0" cellspacing="0" border="0" class="display" 
    id="accDetailTable"> 
    <thead> 
     <tr> 
      <th>Currency</th> 
      <th>Current/Savings Account No.</th> 
      <th>Securities Account No.</th> 
     </tr> 
    </thead> 
    <tbody> 
    </tbody> 
</table> 

и мой инициализации

var oTable=$('#accDetailTable').dataTable({ 
      "bProcessing": true, 
      "bServerSide": true, 
      "sAjaxSource": contextPath + "/user/investorAjax?method=getInvestorAccDetailList", 
      "iDeferLoading": 57, 
    }); 

Возврат jsonData с сервера:

{"sEcho":1,"iColumns":4,"iTotalRecords":16,"iTotalDisplayRecords":16, 
"aaData": 
    [{"DT_RowId":2032,"currency":1,"currentAccNo":"aa","secureAccNo":"aa"}, 
    {"DT_RowId":2033,"currency":1,"currentAccNo":"111","secureAccNo":"111"}, 
    {"DT_RowId":2034,"currency":1,"currentAccNo":"a","secureAccNo":"aa"}, 
    ]} 
} 

Но это всегда удар:

DataTables предупреждения (идентификатор таблицы = 'accDetailTable'): Добавлены данные (размер не определен) не соответствует известному количеству колонка (3)

+0

Как добавить другой скрытый столбец для сохранения идентификатора строки? –

+0

Я пытаюсь добавить еще один заголовок id и установить его стиль в скрытое. но он показывает: Добавленные данные (размер не определен) не соответствуют известному числу столбцов (5). С 3 он прыгает до 5, все еще не знает, почему –

+0

любой может помочь? –

ответ

0

Это своего рода легко. Давайте просто делать незначительные изменения, так как вы хотите, чтобы первый столбец содержит идентификатор, возможно, придется использовать fnRender, пожалуйста check the api of datatables, я не добавил эту часть кода:

var oTable=$('#accDetailTable').dataTable({ 
    "bProcessing": true, 
    "bServerSide": true, 
    "sAjaxSource": contextPath + "/user/investorAjax?method=getInvestorAccDetailList", 
    "aoColumns":[ 
     {"mDataProp":"currency"}, 
     {"mDataProp":"currentAccNo"}, 
     {"mDataProp":"secureAccNo"} 
    ] 
}); 
+0

Спасибо, но я пытаюсь настроить как это http://datatables.net/release-datatables/examples/server_side/ids.html: с учетом имени столбца DT_RowId, но он не работает. –

+0

ОК, я думаю, причина в вашем формате данных json, см. Разницу: «DT_RowId»: 2032 VS «DT_RowId»: «row_9», ссылка на это: http://datatables.net/forums/discussion/8962/dt_rowid- not-add-id-to-tr/p1 – OQJF

+0

Я пытаюсь решить ur, но все же: Добавленные данные (размер undefined) не соответствуют известному числу столбцов (3) –

0

Your DataTables ждет три записи за строку, и вы даете ей четыре. В объявлении таблицы (в части html) укажите новую ячейку заголовка <th> в начале строки. Вы введете в него идентификаторы. Затем после инициализации DataTables вы можете скрыть первый столбец, используя fnSetColumnVis(index, visibility) функцию:

oTable.fnSetColumnVis(0, false); //It will hide your first column 

При том, что каждая строка, содержащая его идентификатор (DT_RowId), но не отображая его.

+0

На самом деле я пробую это http://datatables.net/release-datatables/examples/server_side/ids.html. Он сказал, что с свойством DT_RowId, datatable автоматически добавит его как Id . Я думал, что ошибка не является причиной JsonData. –

+0

В данной ссылке параметр iColumns не определен в json-ответе. Можете ли вы попытаться удалить его? – AnthonyLeGovic

+0

Я удаляю его, но получаю ту же ошибку. –