【问题标题】:How to get value of checked checkbox (in footer of jqgrid) and send to controller?如何获取选中复选框的值(在jqgrid的页脚中)并发送到控制器?
【发布时间】:2015-04-26 04:53:11
【问题描述】:

我在 jqgrid 的页脚中有复选框,并且希望在单击按钮(发送命令)时将复选框的值发送到控制器。

When a row is selected and click button send command, 除了其值之外,还会发送复选框(选中或未选中) 我的代码:

 .jqGrid('navButtonAdd', '#pager',
                       {
                       caption: "Send Command ", buttonicon:"ui-  icon-signal-diag", title: "Send Command ",
                            onClickButton: function () {
                                var selRow =    jQuery("#list").jqGrid('getGridParam', 'selarrrow');  //get selected rows
                                var dataToSend = JSON.stringify(selRow);
                                if (selRow == 0) {
                                    // display error message because no row is selected
                                    $.jgrid.viewModal("#" + 'alertmod_' + this.p.id,
                                        { gbox: "#gbox_" +   $.jgrid.jqID(this.p.id), jqm: true });
                                    $("#jqg_alrt").focus();
                                }
                                else {
                                    $.ajax({
                                        url: '@Url.Action("Index", "AddSMS")',
                                        type: 'POST',
                                        contentType: 'application/json; charset=utf-8',
                                        data: dataToSend,
                                        dataType: 'json',
                                        success: function (result) {
                                            alert('success');
                                        }
                                    });
                                }
                            }
                        })
        $("#pager_left table.navtable tbody tr").append( // here 'pager' part or #pager_left is the id of the pager
'<td><div><input type="checkbox" class="myMultiSearch" id="WithSetting" />Setting </div></td>');

我可以发送行的数据,但我不知道如何发送复选框的值???

【问题讨论】:

  • 我不是 jQuery 专家,但我想你应该先给你的复选框一个 value 属性,例如&lt;input type="checkbox" class="myMultiSearch" id="WithSetting" value="1" /&gt;。这是激活复选框时将通过您的表单发送的值。然后您应该能够在您的 jQuery 脚本中检索它。
  • 是的,我应该给出复选框的值,但是如何将值发送到控制器?我只能发送我选择的行而不是 chechbox 的值。

标签: javascript jquery asp.net-mvc-4 checkbox jqgrid


【解决方案1】:

您将其作为 URL 参数发送。变化:

url: '@Url.Action("Index", "AddSMS")',

url: '@Url.Action("Index", "AddSMS")' + '?cbChecked=' + $("input.myMultiSearch").is(":checked"),

那么您应该能够将您的AddSMS 控制器中的Index 更新为:

public ActionResult Index(long[] selrow, bool cbChecked) 
{ 
    if (cbChecked) 
    {
        //this should run if the checkbox has been checked
    }
//......

【讨论】:

  • 感谢您的回复。在我的控制器中,我得到了 int 数组并且没有任何布尔值???
  • @mahdisdezfouli 尝试用Index(....., int[] data, bool cbChecked)更新Index
  • @mahdisdezfouli 你能从你的控制器发布Index() 行吗?
  • 我不明白你的意思?
  • 它工作正常。非常感谢。您的帮助很有用。
猜你喜欢
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多