2012-07-25 46 views
1

我想在jqgrid中使用多選功能選擇多行並將其傳遞給控制器​​。我創建了一個按鈕,如下所示,但是當我選擇行並單擊按鈕時,點擊按鈕事件未被觸發。我猜測我傳遞錯誤的參數給函數。以下是javascript代碼...MultiClick的OnClickButton函數參數jqgrid MVC3

$("#request").jqGrid('navButtonAdd', '#requestpager', 
    {  caption: "Add", buttonicon: "ui-icon-info", title: "Add", //position: "first", 
      onClickButton: function (ids) { 
      var grid = $("#request"); 
      var rowids = grid.jqGrid('getGridParam', 'selarrrow'); 
      var count = rowids.length; 
      var rowData, colData; 
       for (var i = 0; i < count; i++) { 
       rowData = $("#request").getRowData(rowids[i]); 
       colData = rowData.Name; 
     } 
       jQuery("#request").jqGrid({ url: "/Home/Create/" + colData }); 

有沒有人有任何建議我做錯了什麼?

回答

1

好吧,它不難實現多選在jqgrid中,我會給你一個我在我的項目中實現的工作示例。

HTML

<table id="grid" cellpadding="0" cellspacing="0"></table>//your grid 
<div id="pagerGrid" style="text-align:center;"></div><br />//pager 
<div><span><button type="button" id="sendMe" class="send" >Send Me To Controller</button>//button which will take the data of all multiselect rows to controller 

在你的jqGrid

只允許多選:真

,寫這個javascript函數

$('#sendMe').click(function(){ 
     var selRowIds = $('#grid').jqGrid('getGridParam', 'selarrrow'); 
     if(selRowIds.length>0) 
     { 
     for(var i=0;i<selRowIds.length;i++){ 
     var Id=getCellValue(selRowIds[i],'Id'); 

     var Name=getCellValue(selRowIds[i],'Name'); 
     var Company=getCellValue(selRowIds[i],'Company'); 

     $.ajax({ 
     type: 'POST', 
     url: '@Url.Action("AddMe")', 
     contentType: 'application/json; charset=utf-8', 
     data:JSON.stringify({Id: Id,Name:Name,Company:Company}), 
     dataType: "json", 

     success:function(){ 
     $('#grid').trigger("reloadGrid"); 
     } 

     error: function() { 

     } 

     }); 

     } 
     } 
     }); 

,你控制方法樂這樣

[HttpPost] 

public ActionResult AddMe(int? Id, string Name, string Company) 
{ 
} 

我希望這有助於其工作的例子...

P.S-請把它標記爲答案,如果它幫助你。

+0

非常感謝。我正在嘗試使用getRowData()來返回rowData而不是單元格值。你知道控制器方法應該從getRowData()中作爲參數嗎? – inspiringmyself 2012-07-26 14:41:06

+0

這裏...這將回答你的問題http://stackoverflow.com/questions/267707/how-to-pass-complex-type-using-json-to-asp-net-mvc-controller – 2012-07-26 14:47:45

+0

讓我們說你有一個名爲employee的類,它有兩個屬性名稱和公司,並且您在網格或更少的字段中顯示相同...因此,您將數據stringyfy並將其轉換爲json,然後發送ajax請求,如何轉換你的網格數據json ...檢查編輯:這個人在他的問題本身所作的解決方案http://stackoverflow.com/questions/10744694/submitting-jqgrid-row-data-from-view-to-controller-what - 方法 – 2012-07-26 14:50:52