2012-07-25 46 views
0

我對jqGrid完全陌生。我正在用數據類型爲local的數組填充網格。如何在jqGrid的組中添加新行?

var data=[ 
    {date : "01/01/2012",starttime:"10:15",endtime:"11:15",workfunction:"MA"}, 
    {date : "01/02/2012",starttime:"11:30",endtime:"12:30",workfunction:"CA"}, 
    {date : "01/03/2012",starttime:"13:30",endtime:"14:30",workfunction:"FC"}, 
    {date : "01/01/2012",starttime:"10:15",endtime:"11:15",workfunction:"MA"}, 
    {date : "01/01/2012",starttime:"11:30",endtime:"12:30",workfunction:"CA"}, 
    {date : "01/02/2012",starttime:"13:30",endtime:"14:30",workfunction:"FC"}, 
    {date : "01/02/2012",starttime:"10:15",endtime:"11:15",workfunction:"MA"}, 
    {date : "01/03/2012",starttime:"11:30",endtime:"12:30",workfunction:"CA"}, 
    {date : "01/03/2012",starttime:"13:30",endtime:"14:30",workfunction:"FC"} 
    ]; 

$("#gridTable").jqGrid({ 
    data : data, 
    editurl:"clientArray", 
    datatype: "local", 
    height : 250, 
    colNames: [' ','Date','Start Time','End Time','Work Function'], 
    colModel : [ 
       {name: 'myac', width:80, fixed:true, sortable:false, resize:false, formatter:'actions',formatoptions:{keys:true}}, 
       {name: 'date',index:'date',width: 100,sorttype:'date',editable:true,editoptions : { 
        dataInit : function(element){ 
         formatDatepicker(element,data); 

        } 
       }}, 
       {name: 'starttime',index:'starttime',width: 100,sorttype:'date',editable:true}, 
       {name: 'endtime',index:'endtime',width: 100,sorttype:'date',editable:true}, 
       {name: 'workfunction',index:'workfunction',width: 100,sorttype:'date',editable:true,edittype:"select",editoptions:{value:"MA:MA;CA:CA;FC:FC"}}, 
       ], 
       pager: "#gridPager", 
       caption : "Weekly Details", 
       grouping : true, 
       groupingView : { 
        groupField:['date'] 
       } 

}).navGrid("#gridPager",{edit:true,add:true,del:false}, 
     //edit properties 
     { 
    zIndex : 950, 

     } 
); 

鑑於以上是我使用的網格。我按照日期對網格進行分組,我使用jsp作爲服務器端技術。我的問題是:

  1. 我們可以向組添加一行而不必將其提交給服務器。
  2. 當使用新日期創建新行時,會形成新組。
  3. 我們可以編輯多行並一次全部提交。

回答

0

讓我確定,如果我理解你的權利...... 1。你想添加一行到網格,但不想提交數據到服務器?這是可能的... 2。你必須在這個要求上更加清楚。 3.是的,可以獲取多行的所有編輯數據並將數據發送到服務器。這裏真正的,它像最簡單的選擇:

我會用3

可以使用多選啓動。選擇您要編輯的行,並使用一個函數來實現onSelectRow,該函數將使您的行在選擇行時可編輯。

然後你可以有一個按鈕,將你的編輯的行數據到服務器。

如何使行編輯在選擇他們

或有另一種替代方案讓你的所有行的編輯模式

gridComplete:OnGridComplete, //add this to your Jqgrid parameters 

javascript function 

function OnGridComplete(){ 

      var $this = $(this), rows = this.rows, l = rows.length, i, row; 
      for (i = 0; i < l; i++) { 
       row = rows[i]; 
       if ($.inArray('jqgrow', row.className.split(' ')) >= 0) { 
        $this.jqGrid('editRow', row.id, true); 
       } 
      } 

     } 

以及如何採取編輯的數據到服務器只點擊一下,看我的回答

https://stackoverflow.com/a/11662959/1374763

,現在你的第一個問題

你應該改變editUrl到clientarray,

的jQuery( 「#grid_id」)。jqGrid的( 'saveRow', 「ROWID」,假 'clientArray') ;

檢查該鏈接並轉到saveRow parametrs,更多信息

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing

+0

對不起PIYUSH,但我知道寫這個 的jQuery( 「#grid_id」)。jqGrid的( 'saveRow', 「rowid」,false,'clientArray');是在onclickSubmit按鈕上還是像 – dinupvishal 2012-07-26 06:45:19

+0

那樣進行內聯編輯或表單編輯? – 2012-07-26 07:05:36

+0

看到這個答案的進一步幫助,我希望這會幫助你http://stackoverflow.com/questions/11052643/jqgrid-inlineedit-with-editurl-clientarray-can-not-save – 2012-07-26 07:08:53