2011-10-20 71 views
1

我有一個帶jqGrid的HTML表單(Razor)來選擇實體(請假設客戶)。 顧客jqGrid的樣子:jqGrid:將選定的ID作爲HTML表單參數傳遞

jQuery("#ajaxGrid").jqGrid({ 
    url: '@Url.Action("CustomersData")', 
    datatype: 'json', 
    mtype: 'GET', 
    jsonReader: { repeatitems: false, id: "Id" }, 
    colNames: ['Id', 'Name'], 
    colModel: [ 
     { name: 'Id', editable: true, sortable: false, hidden: false }, 
     { name: 'Name', editable: true, sortable: false, hidden: false } 
    ], 
    multiselect: true, 
    viewrecords: true, 
    rowNum: 5, 
    width: '850', 
    height: '15em' 
}); 

因此,網格允許多項選擇。

現在的問題是:如何將選定的客戶ID(如IEnumerable)傳遞給控制器​​(提交給相應的提交操作)?

我想這可以通過將所有選定的ID設置爲表單參數來完成。我不知道如何從陣列中複製數據:

var ids = jQuery("#ajaxGrid").getGridParam('selarrrow'); 

to HTML form hidden value。

回答

2

如果我理解你是正確的,你可以創建一個字符串,其中包含選定行的逗號分隔的ID,其編號爲ids.join(',')。然後你可以使用jQuery.val(newValue)來設置新隱藏字段:$("#hiddenFieldId").val(ids.join(','));

+0

好吧,我明白了。我應該什麼時候做?發佈表單之前? –

+1

@Serge:當然你應該在提交或發佈之前設置隱藏字段。做到這一點的最佳地點取決於您的計劃的組織。確定工作的方式是在'onSelectRow'事件處理程序中設置隱藏字段。 – Oleg

+0

@@奧列格,謝謝!有用! =) –

相關問題