【问题标题】:How do i use a custom button to send to the JQGrid's editurl?如何使用自定义按钮发送到 JQGrid 的 editurl?
【发布时间】:2018-05-09 21:32:43
【问题描述】:

我在导航寻呼机中添加了以下自定义按钮,但我希​​望它查看我多选的内容并将其发送到 JQGrid 的 editurl 进行处理,这是一个 ASHX.CS 页面 但是当涉及到自定义按钮时,我无法理解文档

我可以通过 onClickButton: customButtonClicked 调用本地函数,但它不像 EDIT 按钮那样发送数据

最后我想做的是选择多行并按下导航栏上的按钮并批准所有选定的记录

        // add first custom button
        $('#jQGrid').navButtonAdd('#jQGridPager',
            {
            buttonicon: "ui-icon-mail-closed",
            title: "Send Mail",
            caption: "Send Mail",
            position: "last",
            editData: {
                WrkId: function () {
                    var sel_id = $('#jQGrid').jqGrid('getGridParam', 'selarrrow');
                    var value = "";
                    for (var a = 0; a < sel_id.length; a++) {
                        value = value + $('#jQGrid').jqGrid('getCell', sel_id[a], 'wrkid') + ',';
                    }
                    return value;
                },
                CurrentUser: function () {
                    return '<% =System.Web.HttpContext.Current.User.Identity.Name %>';
                }
            },
            afterSubmit: function (response, postdata) {
                if (response.responseText == "") {
                    $("#jQGrid").trigger("reloadGrid", [{ current: true }]);
                    return [false, response.responseText]
                }
                else {
                    $(this).jqGrid('setGridParam', { datatype: 'json' }).trigger('reloadGrid')
                    return [true, response.responseText]
                }
            }
            }
        );

【问题讨论】:

    标签: javascript jquery asp.net free-jqgrid


    【解决方案1】:

    使用几个不同的词(如何手动将数据发布到服务器 json)我能够找到一个更有意义的 ajax 代码的 sn-p(我确定我之前遇到过这个问题,但作为一个有没有 jquery 经验我不认识它)

    但下面将可处理的 JSON 字符串中的数据发送到 C# 处理程序页面,必须使用动态来读取它,但它可以工作,即使没有错误,也无法让它不返回错误,所以我使用了完整:而不是成功:然后调用触发器重新加载JQGrid

    最终代码:

    $('#jQGrid').navButtonAdd('#jQGridPager',
                {
                    buttonicon: "ui-icon-check",
                    title: "Approve all selected entries",
                    caption: "Approve",
                    position: "last",
                    onClickButton: function () {
                        var sel_id = $('#jQGrid').jqGrid('getGridParam', 'selarrrow');
                        var value = "";
                        for (var a = 0; a < sel_id.length; a++) {
                            value = value + $('#jQGrid').jqGrid('getCell', sel_id[a], 'wrkid') + ',';
                        };
                        $.ajax({
                            type: "POST",
                            url: "AdministrationHandler.ashx?oper=approve",
                            data: JSON.stringify({
                                WrkId: value,
                                CurrentUser: "<% =System.Web.HttpContext.Current.User.Identity.Name %>"
                            }),
                            dataType: "json",
                            contentType: "application/json; charsset=utf-8",
                            complete: function (xhr, x) {
                                if (xhr.responseText.toUpperCase().indexOf("SUCCESS") >= 0) {
                                    alert('Success!\n' + xhr.responseText);
                                }
                                else {
                                    alert('Failed!\n' + xhr.responseText + '\n' + x);
                                };
                                $("#jQGrid").jqGrid('setGridParam', { datatype: 'json' }).trigger('reloadGrid');
                            }
                        })
                    }
                });
    

    C#代码

    try
    {
        String postData = new System.IO.StreamReader(context.Request.InputStream).ReadToEnd();
        var data = JsonConvert.DeserializeObject<dynamic>(postData);
        Approve(data.WrkId.ToString(), data.CurrentUser.ToString());
        strResponse = "Employee records successfully approved";
    }
    catch
    {
        strResponse = "Employee records not approved";
    }
    context.Response.Write(strResponse);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-11
      • 2014-05-28
      • 1970-01-01
      • 2012-02-09
      相关资源
      最近更新 更多