0
我有一個複選框列下面的jqGrid:後的jqGrid值MVC控制器
$(document).ready(function() {
$("#tblJQGrid").jqGrid({
url: 'Home/GetDataForCompanyJqGrid',
datatype: "json",
mtype: 'GET',
colNames: ['CompanyID', '', 'Offices'],
colModel: [
{ name: 'CompanyID', index:'CompanyID', key:true, hidden:true},
{ name: 'check', index: 'check', width: 50, align: 'center', editable: true, edittype: 'checkbox', editoptions: {value: "True:False"}, formatter: "checkbox", formatoptions: {disabled: false}},
{ name: 'Description', index: 'CompanyName', width: 200, align: 'center' }],
rowNum: 10,
data: {},
sortname: 'CompanyName',
viewrecords: true,
sortorder: "desc",
height: "auto",
caption: "List Offices:"});
});
我的jqGrid包含一個複選框列和我要發佈我的CompanyID
列的值,如果行復選框被選中,我的MVC控制器。我試圖通過在我的html表單中指定一個動作action="@Url.Action("ExportData", "MyControler")"
來將所有行的值首先發布到我的MCV ActioResult
,但我的ActionResult中只有null。 任何人都可以幫助我一個想法如何實現從我的jqgrid發佈值到我的MVC ActionResult?
你的問題還不完全清楚。你是否用服務器的某些值填充了「check」,或者最初沒有選擇所有複選框,並且用戶應該選擇某個人,並且您需要將選定的CompanyID發送到服務器?我想你應該**刪除**'name:'check''列並添加'multiselect:true'選項。你使用'rowNum:10'並且不使用'loadonce:true'選項。在Home/GetDataForCompanyJqGrid中實現**服務器端分頁**嗎?如果它返回更多10行,會是什麼?從'Home/GetDataForCompanyJqGrid'中返回哪種格式的數據? – Oleg
如果從'Home/GetDataForCompanyJqGrid''返回的數據格式如數組{{「CompanyID」:123,「CompanyName」:「某個名稱}}'',那麼您可以移除'CompanyID'列並使用'jsonReader: {id:「CompanyID」}'。每個網格行('
您使用哪個版本的jqGrid(必須使用)以及哪個版本的jqGrid([免費jqGrid](https://github.com/free-jqgrid/jqGrid),商業版[Guriddo jqGrid JS](http:// guriddo.net/?page_id=103334)還是舊版jqGrid版本<= 4.7)?我開發免費的jqGrid分叉。如果我正確理解你所做的事情,那麼你的'GetDataForCompanyJqGrid'代碼可以非常容易,JavaScript也很容易,你需要使用'loadonce:true,multiselect:true,forceClientSorting:true,multiPageSelection:true'。以[演示](http://www.ok-soft-gmbh.com/jqGrid/OK/multiPageSelection.htm)爲基礎。 – Oleg
回答
我建議您使用
multiselect: true
而不是列name: 'check'
。另外,你可以從控制器動作GetDataForCompanyJqGrid
以非常簡單的形式返回數據,例如,下列:,並使用類似的代碼
的
$(document).ready
內。您可以使用$("#tblJQGrid").jqGrid("getGridParam", "selarrrow")
來獲取所選項目的CompanyID數組。您可以在頁面上添加一個按鈕,然後將$("#tblJQGrid").jqGrid("getGridParam", "selarrrow")
,然後$.ajax
的信息用於服務器。您可以使用例如見the old answer爲相應的代碼示例。
來源
2016-08-25 09:26:32 Oleg
是否可以發送selectedIds數組? – FabianJ
@FabianJ:一切皆有可能,但在JavaScript代碼中使用'ids.join()'和在您的C#代碼中使用'var ids = selectedIds.Split(',');'會產生最簡單明瞭的代碼。這是我推薦你的方式。其他任何代碼都需要更多的C#代碼來自定義綁定,但最後它會執行相同的操作。以[答案](http://stackoverflow.com/a/9508310/315935)爲例。 – Oleg
可否請給我一個例子,我的ActionResult應該如何?因爲我仍然只有空。我試着用'public ActionResult ExportData(string selectedIds)' – FabianJ
相關問題