2016-02-09 23 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:假的, editOnD2:true},
pageSizeOptions:['5','10','25','50','100','200','500','1000'], virtualModeRecordCreating:功能(記錄)if(record.is_leaf) record.leaf = true; } }, virtualModeCreateRecords:功能(expandedRecord,完成){ VAR源= { 數據類型: 「JSON」, 數據域:[ {名稱: 'group_pin',類型: '字符串'}, {名:'root_of',輸入:'string'}, {name:'user_pin_owner',type:'string'}, {name:'name',type:'string'}, {name:'name_alias',類型:'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 newRowID = rowID; }, updateRow:功能(ROWID,rowdata,提交){ $就({ 類型: 「POST」, URL: 'http://localhost/app/save', 數據類型: 'JSON', 數據:$。param(rowdata), error:function(xhr,textStatus,errorThrown){ commit(false); (data ['response'] == true) { {commit(true); }, 成功:function(data,textStatus){ if

     } 
         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 
     } 
    ] 
}); 

感謝 麗都

+0

這似乎很不清楚。你能澄清你面臨的問題是什麼,也許會顯示一些代碼? –

回答

1

你應該實現在TreeGrid's源對象 「updateRow」 功能。你應該通過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); 
       }