2013-04-15 5 views
1

Я использую плагин «DataTables», и я хочу добавить изображение по строке, которое, когда пользователь нажимает, вызывает другой URL-адрес.Добавить строку строки для плагина JQuery DataTables

Я следовал примеры www.datatables.net, но дает ошибку ниже:

DataTables предупреждение (таблица ID = «myDataTable»): Запрошенный неизвестный параметр «4» из источника данных для строки 0.

записи отображаются на экране

<h2>Index</h2> 

<script type="text/javascript"> 
    $(document).ready(function() { 

     var oTable = $('#myDataTable').dataTable({ 
      "bServerSide": true, 
      "sAjaxSource": "AjaxHandler", 
      "bProcessing": true, 
      "sPaginationType": "full_numbers", 
      "aoColumns": [ 
         { "mDataProp": "ID", "bSortable": false }, 
         { "mDataProp": "Nome", "sTitle": "Identificação do produto" }, 
         { "mDataProp": "Address", "sTitle": "Descrição do produto" }, 
         { "mDataProp": "Town" }, 
         { "fnRender": function (o) {return '<a href=/Produto/Detalhar/' + o.aData[0] + '>' + 'More' + '</a>';}} 
      ], 
     }); 
    }); 
</script> 


<table id="myDataTable" class="display"> 
    <thead> 
     <tr> 
      <th>ID</th> 
      <th>Company name</th> 
      <th>Address</th> 
      <th>Town</th> 
      <th>Action</th> 
     </tr> 
    </thead> 
    <tbody> 
    </tbody> 
</table> 

ответ

4

Я не знаю, DataTable (не хватает), но вы должны попробовать так: {не уверен mDataProp устарела или нет}

$(document).ready(function() { 

     var oTable = $('#myDataTable').dataTable({ 
      "bServerSide": true, 
      "sAjaxSource": "AjaxHandler", 
      "bProcessing": true, 
      "sPaginationType": "full_numbers", 
      "aoColumns": [ 
         { "mData": "ID", "bSortable": false }, 
         { "mData": "Nome", "sTitle": "Identificação do produto" }, 
         { "mData": "Address", "sTitle": "Descrição do produto" }, 
         { "mData": "Town" }, 
         { "mData": null, 
        "bSortable": false, 
      "mRender": function (o) {return '<a href=/Produto/Detalhar/' + o.aData[0] + '>' + 'More' + '</a>';} 
      } 
      ] 
     }); 
    }); 

Удостоверьтесь, что ваши данные ногами с объявлением столбца, вы должны иметь как ответ ajax json с идентификатором данных, ном, адресом и городом. Если ваши первые данные не являются идентификаторами ID, вы получите ошибку, я думаю.

5

Я использую dataTables версии 1.10.0-dev, и принятое решение для меня не работает, потому что o.aData не определено. Вместо этого у меня есть все свойства объектов json, которые я возвращаю серверной стороне в o. Так что это мое решение:

$(document).ready(function() { 
    var oTable = $('#myDataTable').dataTable({ 
     "bServerSide": true, 
     "sAjaxSource": "AjaxHandler", 
     "bProcessing": true, 
     "sPaginationType": "full_numbers", 
     "aoColumns": [ 
      { "mData": "ID", "bSortable": false }, 
      { "mData": "Nome", "sTitle": "Identificação do produto" }, 
      { "mData": "Address", "sTitle": "Descrição do produto" }, 
      { "mData": "Town" }, 
      { 
       "mData": null, 
       "bSortable": false, 
       "mRender": function (o) { return '<a href=/Produto/Detalhar/' + o.Id + '>' + 'More' + '</a>'; } 
      } 
     ] 
    }); 
}); 

Я не знаю, если это зависит от новой версии DataTables или от других конфигураций (но мой стол настроен таким же образом ...).

+0

Привет, этот код работает с этим URL-адресом http://www.flexgestor.com.br/CA, а версия dataTable - 1.9.4 @Daniele Armanasco –

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