如何在列表数组中保存jqgrid的值

时间:2015-12-25 13:29:42

标签: c# jquery asp.net-mvc jqgrid asp.net-ajax

我已成功实施jqgrid,我有一些关于将所选数据发布到控制器的问题

  1. 如何保持对所选行的跟踪意味着如何将数据保存在列表数组中?
  2. 如何再次传回数据表以显示结果,例如没有选择行和选择行值的总和等。请帮忙。我发布了我的jquery代码以及控制器代码。提前谢谢。

    查看:

    Map

    控制器代码:

    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" },
                ]
            });
    }
    
  3. 每当我选择一行时,即使我将其变为全局,它也将i变量初始化为'0'。

1 个答案:

答案 0 :(得分: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();
}

DEMO