如何将jqgrid的值保存在列表数组中
本文关键字:存在 列表 数组 保存 jqgrid | 更新日期: 2023-09-27 18:28:12
我已经成功实现了jqgrid,我对将所选数据发布到控制器有一些问题
- 如何保持对所选行的跟踪意味着如何将数据保存在列表数组中
-
如何返回数据表以再次显示结果,如所选行数和所选行值的总和等。请提供帮助。我正在发布我的jquery代码以及控制器代码。提前谢谢。
视图:
onSelectRow: function (id, status) { alert('polo'); var rowData = jQuery(this).getRowData(id); FirstName = rowData['FirstName']; LastName = rowData['LastName']; Salary = rowData['Salary']; Gender = rowData['Gender']; $.ajax({ url: '/TodoList/notCk_Pk', data:{'FirstName':FirstName,'LastName':LastName,'Salary':Salary,'Gender':Gender}, type: "post" }) $('#example').dataTable({ "bProcessing": true, "bServerSide": true, "sAjaxSource": "/TodoList/notCk_Pk", "sAjaxDataProp": "", "columns": [ { "data": "FirstName" }, { "data": "LastName" }, { "data": "Salary" }, { "data": "Gender" }, ] }); }
控制器代码:
public ActionResult notCk_Pk(String FirstName,String LastName,int Salary,String Gender) { l.Add(FirstName); l1.Add(LastName); i = Salary + i; l2.Add(Gender); string ConnectionString = ConfigurationManager.ConnectionStrings["EmployeeContext"].ConnectionString; using (SqlConnection connection = new SqlConnection("data source=.; database=Srivatsava; integrated security=SSPI")) { connection.Open(); SqlCommand com = new SqlCommand("insertinto", connection); com.CommandType = CommandType.StoredProcedure; com.Parameters.AddWithValue("@FirstName", FirstName); com.Parameters.AddWithValue("@LastName",LastName); com.Parameters.AddWithValue("@Salary", Salary); com.Parameters.AddWithValue("@Gender", Gender); com.ExecuteNonQuery(); connection.Close(); } var todoListsResults = l.Count(); var t1=l1.Count(); var t3=l2.Count(); var aaData=new{ todoListsResults, t1, i, t3 }; return Json(aaData, JsonRequestBehavior.AllowGet); //Console.WriteLine(FirstName + "" + LastName + "" + Salary + "" + Gender); //return Content("<script language='javascript' type='text/javascript'>alert("+FirstName+");</script>"); }
每次我选择一行时,它都会将I变量初始化为"0",即使我将其设置为全局变量。
您不需要使用列表数组。您可以使用$("#ListGrid").jqGrid('getGridParam', 'selarrrow')
获取所有选定的行。下面的代码片段可能会对您有所帮助。
onSelectRow: function(id, status) {
var currentRow = $(this).getRowData(id);
FirstName = currentRow['FirstName'];
LastName = currentRow['LastName'];
Salary = currentRow['Salary'];
Gender = currentRow['Gender'];
$.ajax({
url: '/TodoList/notCk_Pk',
data:{'FirstName':FirstName,'LastName':LastName,'Salary':Salary,'Gender':Gender},
type: "post"
})
var rows = $("#ListGrid").jqGrid('getGridParam', 'selarrrow');
var totalRow = rows.length;
var totalAmount = 0;
$.each(rows, function() {
var rowData = $("#ListGrid").getRowData(this);
totalAmount += rowData["Salary"] * 1;
});
dataTable.row($('#example').find('tbody tr')).remove().draw();
dataTable.row.add([totalRow, totalAmount]).draw();
}