2011-02-04 46 views
0

我查看哪个(简化版的真实屏幕)有几个Drop Down控件,允许用户选择一个Category,然后是一个Sub Category - 输入一个数量,然后点击一个'添加“按钮。 Add按钮然后向JQuery Grid添加一个新行(enter link description here)。使用jquery grid的ASP.Net MVC

然后,控件重置,并允许用户选择另一个类别,子类别和数量,然后再次单击添加,将数据添加到网格。

 $(function() { 
     $('#addSplit').click(function() { 
      var mydata = [ 
          { category: $('#SelectedCategoryId option:selected').text(), subcategory: $('#SelectedSubCategoryId option:selected').text(), costcenter: $('#SelectedCostCenterId option:selected').text(), budget: $('#SelectedBudgetId option:selected').text(), amount: $('#amount').val() } 
         ]; 

      for (var i = 0; i <= mydata.length; i++) 
       jQuery("#list4").jqGrid('addRowData', i + 1, mydata[i]); 
     }); 
    }); 

行正在被添加好。 (我需要添加隐藏的列来以某种方式存储ID)。

然后,用户将点击'保存'。我想以某种方式在网格中循环访问,获取(将被添加的)id,并以某种方式将它返回到我的MVC控制器中进行存储。

可以这样做吗?或者有什么我想要做的更好的主意?

回答

1

你必须定义你的colModel。 我会定义接收数据的阵列功能,并结合它(数据:DataToLoad)

function LoadGrid(DataToLoad)  { 
    jQuery("#list4").jqGrid({ 
     data: DataToLoad, 
     datatype: "local", 
     width: 790, 
      height: 250, 
     rowNum: 999999, 
     colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'], 
     colModel:[ 
      {name:'id',index:'id', hidden:true, sorttype:"int"}, 
      {name:'invdate',index:'invdate', width:90, sorttype:"date", formatter:"date"}, 
      {name:'name',index:'name', width:100}, 
      {name:'amount',index:'amount', width:80, align:"right",sorttype:"float", formatter:"number"}, 
      {name:'tax',index:'tax', width:80, editable: true, align:"right",sorttype:"float"},  
      {name:'total',index:'total', width:80,align:"right",sorttype:"float"},  
      {name:'note',index:'note', width:150, sortable:false}  
     ], 
     emptyrecords: "No records to view", 
     cellEdit: true, 
     cellsubmit: 'clientArray', 
     viewrecords: true, 
     shrinkToFit: false, 
     scroll: false, 
     rownumbers: true, 
     hidegrid: false, 
     pager: "#plist47", 
     caption: "Manipulating Array Data" 
    }); 
} 

正如你所看到的第一列是隐藏的:真正的

然后,你可以打电话给你的函数数组加载,而不是添加行到网格:

$("#addSplit").bind('click', function(){ 
    jQuery("#list4").GridUnload(); 
    // LOAD the ARRAY here. 
    LoadGrid(mydata); 
}); 

记住@vandalo卸载电网jQuery("#list4").GridUnload();

+0

谢谢 - 请问当我点击我的保存按钮(这是提交模型返回到控制器的提交按钮)时,我可以使用数组吗? – Craig 2011-02-05 23:05:41