2016-02-09 11 views
-1

это возможно яснее: У меня есть миллиард записей данных для treegrid, я использую плагин jqwidget treegrid с помощью «виртуального режима», но процесс редактирования для данных обновления не работает, поскольку он не отправляет данные на сервер , Как я могу исправить проблему.Jqwidget Treegrid

Или мне нужно изменить плагин, не могли бы вы дать мне несколько рекомендаций, чтобы найти лучший плагин для treegrid.

это мой код

$ ("# jqxTreeGrid") jqxTreeGrid ({ ширина:. '100%', иконки: правда, autoRowHeight: правда, showHeader: правда, columnsHeight: 30 , columnsResize: правда, columnsReorder: правда, фильтруемых: правда, filterMode: 'продвинутого', Сортируемые: правда, выгружаемой: ложный, pagerMode: 'продвинутые', altRows: правда,
showToolbar: правда, showStatusbar: правда, toolbarHeight: 35, редактируемые: правда,
editSettings: {saveOnPageChange: правда, saveOnBlur: правда, saveOnSelectionChange: правда, cancelOnEsc: правда, saveOnEnter: правда, editSingleCell: ложь, editOnDoubleClick: true, editOnF2: true},
pageSizeOptions: ['5', '10', '25', '50', '100', '200', '500', '1000'], virtualModeRecordCreating: функция (запись) { если (запись.is_leaf) { запись.leaf = true; } }, virtualModeCreateRecords: функция (expandedRecord, сделано) { источник вар = { Datatype: "JSON", поля данных: [ {имя: 'group_pin', тип: 'строка'}, {имя : 'root_of', type: 'string'}, {name: 'user_pin_owner', type: 'string'}, {name: 'name', type: 'string'}, {name: 'name_alias', type: 'string'}, {name: 'url', type: 'string'}, {name: 'avatar', type: 'string'}, {name: 'type', type: 'string' }, {name: 'address', ty pe: 'string'}, {name: 'icon', type: 'string'}, {name: 'is_leaf', type: 'bool'}, {name: 'description', type: 'string' } ], типа: 'GET', кэш: ложь, ID: 'group_pin', иерархия: { keyDataField: {имя: 'group_pin'}, parentDataField: {имя: 'root_of'} }, URL: 'http://localhost/app/listdata', root: "listData", addRow: function (rowID, rowData, position, parentID, commit) { commit (true); новыйRowID = rowID; }, updateRow: функция (ROWID, ROWDATA, совершают) { $ .ajax ({ типа: "POST", URL: 'http://localhost/app/save', DATATYPE: 'JSON', данные: $.param (rowdata), error: function (xhr, textStatus, errorThrown) { commit (false); }, success: function (data, textStatus) { if (data ['response'] == true) { commit (true);

     } 
         else 
         { 
          commit(false); 
         } 
        } 
       }); 
      } 
     }; 
     var dataAdapter = new $.jqx.dataAdapter(source,{ 
      beforeSend: function (xhr) { }, 
      downloadComplete: function (data, status, xhr) { }, 
      loadComplete: function (data) { 
       done(dataAdapter.records); 
       $("#clearParentGroupbuttom").addClass("disabled"); 
       if(data.listData.length > 0) 
       { 
        for(var i=0; i<data.listData.length; i++) 
        { 
         if(data.listData[i].root_of != '') 
         { 
          $("#jqxTreeGrid").jqxTreeGrid('expandRow', data.listData[i].root_of); 
         } 
        } 
       } 
      }, 
      beforeLoadComplete: function (records) { }, 
      loadError: function (xhr, textStatus, errorThrown) { 
       done(false); 
      }, 
      formatData: function (data) { 
       if (expandedRecord == null) 
       { 
        data.parent_code = "" 
       } 
       else 
       { 
        data.parent_code = expandedRecord.group_pin; 
       } 
       var pageSize = $('#jqxTreeGrid').jqxTreeGrid('pageSize'); 
       return data; 
      } 
     }); 
     dataAdapter.dataBind(); 
    }, 
    columns: [ 
     { 
      text: 'Name', 
      pinned: true, 
      dataField: 'group_pin', 
      editable: false, 
      align: 'center', 
      hidden: true, 
      sortable: true, 
      filterable: true, 
      width: 150 
     },{ 
      text: 'Name', 
      pinned: true, 
      dataField: 'name', 
      align: 'center', 
      minWidth: 200, 
      width: 350, 
      cellsRenderer: function (rowKey, column, cellValue, rowData, cellText) { 
       return cellValue + " (<b style='font-size:10px;'>Pin: " + rowData["group_pin"] + "</b>)"; 
      }, 
      validation: function (cell, value) { 
       if (value == "") 
       { 
        return { result: false, message: "<?php echo trans('garputala.required_textbox'); ?>" }; 
       }        
       return true; 
      } 
     },{ 
      text: 'Owner', 
      pinned: true, 
      dataField: 'user_pin_owner', 
      editable: false, 
      hidden: true, 
      align: 'center', 
      cellsAlign: 'center', 
      width: 100 
     } 
    ] 
}); 

Благодаря Rido

+0

Это кажется очень неясным. Можете ли вы уточнить, в чем проблема, с которой вы столкнулись, возможно, показать какой-то код? –

ответ

1

Вы должны реализовать функцию "updateRow" в объекте TreeGrid's источника. Там вы должны сделать вызов AJAX для отправки обновленных данных на ваш сервер. Ниже приведено примерное определение «updateRow».

updateRow: function (rowID, rowData, commit) { 
        // synchronize with the server - send update command 
        // call commit with parameter true if the synchronization with the server is successful 
        // and with parameter false if the synchronization failed. 
        commit(true); 
       }