Таблица данных Jquery Datatables, полностью изменяемая - PullRequest
0 голосов
/ 07 декабря 2009

Я пытаюсь создать полностью изменяемую таблицу данных с помощью плагина Jatery Datatable. Под полностью изменяемой таблицей я имею в виду, что пользователь сможет редактировать, удалять, обновлять, добавлять столбцы в таблицу. Основываясь на примерах, в настоящее время я пытаюсь следующий код JavaScript:

  function var_dump(obj) {
       if(typeof obj == "object") {
        return "Type: "+typeof(obj)+((obj.constructor) ? "\nConstructor: "+obj.constructor : "")+"\nValue: " + obj;
       } else {
        return "Type: "+typeof(obj)+"\nValue: "+obj;
       }
    }//end function var_dump

      var oTable;
      var giRedraw = false;
      var giCount=11;
      $(document).ready(function() {
/* Add a click handler to the rows - this could be used as a callback */
      $("#example tbody").click(function(event) {
        $(oTable.fnSettings().aoData).each(function (){
          $(this.nTr).removeClass('row_selected');
      });
          $(event.target.parentNode).addClass('row_selected');
      });
/* Add a click handler for the delete row */
      $('#delete').click( function() {
        var anSelected = fnGetSelected( oTable );
        var iRow = oTable.fnGetPosition( anSelected[0] );
        oTable.fnDeleteRow( iRow );
        } );

                oTable = $('#example').dataTable( {
                    "bProcessing": true,
                    "bServerSide": true,
                    "sAjaxSource": "lib/server_processing.php",
                    "fnDrawCallback": function () {
                        $('#example tbody td').editable( 'lib/editable_ajax.php', {
                "callback": function( sValue, y ) {
                alert(sValue);
                                /* Redraw the table from the new data on the server */
                                oTable.fnDraw();
                            },
                            "height": "14px"
                        } );
                    }
                } );
      } );

function fnClickAddRow() {
  oTable.fnAddData( [
    giCount+".1",
    giCount+".2",
    giCount+".3",
    giCount+".4",
    giCount+".5", ]
 );
 giCount++;
}


/* Get the rows which are currently selected */
function fnGetSelected( oTableLocal )
{
  var aReturn = new Array();
  var aTrs = oTableLocal.fnGetNodes();

  for ( var i=0 ; i<aTrs.length ; i++ )
  {
    if ( $(aTrs[i]).hasClass('row_selected') )
    {
      aReturn.push( aTrs[i] );
    }
  }
  return aReturn;
}

Это прекрасно работает в пользовательском интерфейсе, но я понятия не имею, как отправить информацию о столбце на сторону сервера. Хорошо, я могу отправить новое значение столбца в скрипт server_ajax, но как я могу отправить другую связанную информацию о столбце, например, уникальный идентификатор редактируемого столбца в базе данных.

Ответы [ 2 ]

0 голосов
/ 10 марта 2011

Если вы хотите использовать DataTables, вот статья о том, как реализовать функции CRUD с помощью JQuery DataTables http://www.codeproject.com/KB/aspnet/MVC-CRUD-DataTable.aspx все необходимые функции размещены в плагине jquery.datatables.editable.js, который добавляет функции CRUD поверх плагина DataTables.

0 голосов
/ 07 декабря 2009

извините, если это не ответит на ваш вопрос напрямую или вы уже смотрели эту опцию. Плагин jqGrid учитывает все, что вы только что упомянули, и начиная с версии 3.6, вы можете выбрать, какие столбцы отображать (что, я думаю, вы также упоминали) ... в гораздо меньшем количестве кода (я думаю). Ключевым моментом является то, что он обрабатывает все AJAX для вас, вам нужно только проанализировать немного JSON и обработать структурированные данные на стороне сервера.

http://www.trirand.com/jqgridwiki/doku.php

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