jquery - 如何仅在选中或选中jqgrid的复选框时触发事件

标签 jquery asp.net-mvc jqgrid asp.net-ajax

我已经为 jqgrid 实现了代码,在我的代码中,选择每一行后,值的计数将显示在 jquery 数据表中。即使当我取消选中该复选框时,它仍在计算值,我尝试了多种方法来解决它,但没有用。请帮忙。我在此处附加代码供您查看。

Js脚本:-

function callme(fncount, lncount, i, gndr) {
    var grid = $("#ListGrid");
    var s;
    s = jQuery("#ListGrid").jqGrid('getGridParam', 'selarrrow');
    alert(s);
    //if (s > 0) {
    var yesrno = $("#ListGrid").find('input[type=checkbox]').is(':checked')
    alert(yesrno);
    if (yesrno == true) {
        $.post('/TodoList/This_is_final', { 'FirstNameCount': fncount, 'LastNameCount': lncount, 'TotalSalary': i, 'GenderCount': gndr }, function (data) {
            alert(JSON.stringify(data));
            $('#example').dataTable({

                "aaData": data,
                "aoColumns": [{ "mData": "FirstNamecount" },
                    { "mData": "LastNamecount" },
                    { "mData": "Salary" },
                    { "mData": "Gendercount" }],
                retrieve: true,
                "bDestroy": true,
                paging: false,

            }).fnDestroy();
        });

    }

}

Controller :-

 public JsonResult This_is_final(int FirstNameCount, int LastNameCount, int TotalSalary, int GenderCount)
        {
          // Console.WriteLine(b);
           List<Counting> lc = new List<Counting>();
           Counting c = new Counting();
           c.FirstNamecount = Convert.ToInt32(FirstNameCount);
           c.LastNamecount = LastNameCount;
           c.Salary = TotalSalary;
           c.Gendercount = GenderCount;
           //c.lc.Add(c);
           //var data=c.lc.OrderBy(a => a.Salary);
          lc.Add(c);
           //// lc.ToList();

            return Json(lc, JsonRequestBehavior.AllowGet);


        }

Jqgrid选择 jqgrid 的行后,计数将显示在数据表 Jquery datatable

最佳答案

您可以在 jqgrid onSelectRow 事件中执行此操作,如下所示。希望这会对您有所帮助。

onSelectRow: function(row, isSelected) {
    var rows = $("#ListGrid").jqGrid('getGridParam', 'selarrrow');

    var totalRow = rows.length;
    var totalAmount = 0;

    $.each(rows, function() {
       var rowData = $("#ListGrid").getRowData(this);
       totalAmount += rowData["amount"] * 1;
    });

    dataTable.row($('#example').find('tbody tr')).remove().draw();
    dataTable.row.add([totalRow, totalAmount]).draw();
}

DEMO HERE

关于jquery - 如何仅在选中或选中jqgrid的复选框时触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34527301/

相关文章:

JavaScript:将多维数组转换为二维数组

c# - Angular 5 Uncaught( promise 中): Error: StaticInjectorError(AppModule)

asp.net-mvc - 为什么我的 View 不包括 _Layout.cshtml?

c# - 获取行 ID 然后将其存储在 session 中?

javascript - 如何在按钮上单击 JqGrid 文本框值

jqGrid 未加载数据

javascript - ("#"+ items).append 不是函数

javascript - 如何处理主干js中特定目标的点击事件

javascript - 使用 javascript 自动选择下拉列表并运行 jquery

css - 响应式网页设计和元素定位