JQGrid 与 WCF 数据服务 (OData);在编辑模式下未调用 loadBeforeSend;无法执行 setRequestHeader

2023-12-05

我对这个出色的 jqgrid 插件有点问题,并且尝试将它与 WCF 数据服务(不是真正的,而是非常相似的 odata4j 服务)一起使用。 顺便说一句,如果有人正在考虑将 jqgrid 与 odata 服务一起使用,请给我写一封信,我找到了一些难题的答案,例如,如何配置网格 xmlreader 来读取 odata xml 结构,从而克服 jquery 命名空间搜索问题( 提示:

include jquery.xmlns.js

.....
$.xmlns.m = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata";
$.xmlns.d = "http://schemas.microsoft.com/ado/2007/08/dataservices";
.....
var feedXmlReaderOptions = {
    root: "feed",
    row: "entry",
    repeatitems: false,
    id: "feed>entry>id"
};
....
    colModel: [
    {
        name: "clmNumKey", 
        index: "clmNumKey", 
        width: 150, 
        xmlmap: "d|clmNum",
        editable: true
    }
    ....
)

不管怎样,问题是 odata 服务需要解决编辑操作(DELETE、PUT、MERGE)的方法作为普通 POST 上的自定义请求标头发送,而不是作为 http 方法。原因似乎是大多数防火墙不允许 PUT 和 DELETE http 方法通过,因为这就是您可以在服务器上放置新文件以及删除文件的方式,以防您猜到有效路径。 长话短说...内联或表单编辑不会触发 loadBeforeSend 事件...我可以看到它是在网格的完整数据请求上触发的,但我只得到了serializeEditData当我从编辑表单提交时触发事件。 我很担心,因为我进入了 jqgrid 源文件(grid.formedit.js, grid.inlineedit.js)并且我无法使用 beforesend 关键字获得任何点击,只有 serializeeditdata 在那里显示。 我错过了什么吗? 有没有另一种方法来设置我需要的标题xhr网格使用ajax对象?就是它xhr网格暴露的物体?

下面是我必须处理编辑事件的代码...同样,loadBeforeSend 未触发...

先感谢您, 塞尔班

$.extend($.jgrid.edit, {
    closeAfterEdit: true,
    closeAfterAdd: true,
    ajaxEditOptions: {
        contentType: "application/json"
    },
    mtype: 'POST',
    loadBeforeSend: function(xhr)
    {
        xhr.setRequestHeader("X-HTTP-Method", "MERGE");
        return xhr;
    },        
    serializeEditData: function (data) {
        delete data.oper;
        return JSON.stringify(data);
    }
});                                                  

没有loadBeforeSend您可以设置的参数$.jgrid.edit。值来自$.jgrid.edit定义默认值options of 编辑网格行.

要指定loadBeforeSend应该在您应该使用的相应 Ajax 请求期间使用的回调ajaxEditOptions相反并指定beforeSend (see $.ajax):

$.extend($.jgrid.edit, {
    closeAfterEdit: true,
    closeAfterAdd: true,
    ajaxEditOptions: {
        contentType: "application/json",
        beforeSend: function (jqXHR, settings) {
            jqXHR.setRequestHeader("X-HTTP-Method", "MERGE");
        }
    },
    //mtype: 'POST', - it's already default
    serializeEditData: function (data) {
        delete data.oper;
        return JSON.stringify(data);
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JQGrid 与 WCF 数据服务 (OData);在编辑模式下未调用 loadBeforeSend;无法执行 setRequestHeader 的相关文章

  • 创建后将事件处理程序添加到 jQuery UI 日期选择器

    我有以下场景 在我的母版页中我有 datepicker datepicker changeYear true changeMonth true dateFormat dd mm yy duration fast 这样 我分配 datepic
  • 限制可选 DOM 复选框

    我试图限制用户可以选择的复选框数量 这些复选框是为数组中的每个项目生成的 DOM 输入对象 我目前对此没有运气 因此非常感谢任何帮助 谢谢 在这里小提琴 http jsfiddle net vVxM2 222 http jsfiddle n
  • javascript jquery 使用脚本更改脚本的src

    我有一个 JavaScript 脚本 它有一个 src 元素 这个 src 是一个 url 我想使用 javascript 更改它 一次更改为其他内容 或者动态创建它 使用 javascript jquery 动态创建脚本元素的最佳方法是什
  • 获取点击的的DOM路径

    HTML div class lol a class rightArrow href a div 伪代码 rightArrow click function rightArrowParents this dom dom is the pse
  • jQuery - 系列之外的 HighCharts 标签(条形图)

    function container highcharts chart type bar backgroundColor null width 360 title text null style display none subtitle
  • 当复选框条件更改时,如何使用ajax更新mysql数据库?

    我有一个在客户端按行显示的文章表 每篇文章都有一个唯一的 ID 并包含一个复选框以指示该文章是否被选中为收藏夹 如果它是最喜欢的 则该复选框已被选中 如果没有 则未选中 现在 如果特定于每一行的复选框条件发生变化 我需要 js 或 jque
  • 将 HTML 表格导出到 Excel

    我在 ASP NET MVC 视图页面上有 HTML 表 现在我必须将该表导出到 Excel 1 我使用部分视图 Inquiries ascx 来显示数据库中的表数据 使用LINQ to Entity 2 我还使用了 UITableFilt
  • 在 PHP 中模拟 jQuery.ajax 请求

    我必须在 PHP 中模拟 AJAX 请求 就像在 jQuery 中一样 我当前的代码在这里 原始 AJAX 调用 不得修改 ajax type POST url someFile php data data success function
  • 当播放器隐藏 div 时停止 JWPlayer

    我有一个网站 我正在使用 JavaScript 添加或删除 css 类 使用此方法 我可以根据需要隐藏或显示 div 效果很好 问题是 当我隐藏 窗口 或更准确地说 div 时 一个 div 使用 JWplayer 打开视频 声音仍在播放
  • JQuery nth-child 无法正常工作

    我正在使用 JQuery 的 nth child 选择器来使用 photo post thumbnail 类来更改每个第 3 个 div 上的边距 但它会在每个第 2 个 div 中更改它 谁能发现我做错了什么吗 Site http www
  • jquery上传完成后重定向到新页面

    我正在尝试让这个 jquery 工具与我的网站一起使用以进行文件上传 https github com blueimp jQuery File Upload https github com blueimp jQuery File Uplo
  • 如何根据服务器响应而不是HTTP 500触发 jquery.ajax() 错误回调?

    通过使用 jquery ajax 函数 我可以执行以下操作 ajax url url type GET async true dataType json data data success function data Handle serv
  • 反馈选项卡,如 www.monyta.com [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有兴趣添加一个在我的页面上托管的反馈选项卡 没有第三方 如 uservoice monyta gets
  • HTML5 仅拖放图像

    我想做的是 如果所有拖动的文件都是图像 则将其删除 但如果有其他文件扩展名 则不要删除它们 而仅删除图像 这是我的尝试 HTML div div JavaScript var dropzone document getElementById
  • IE8 中字符串的 indexOf 的替代函数是什么?

    我用过indexOf检查句子中是否存在特定文本 如下所示 var temp temp data not available if temp indexOf datas 0 alert True else alert false 我面临的问题
  • 像在 tumblr 注册页面上那样鬼写

    有谁知道如何创建一个类似 tumblr 的字段 http www tumblr com http www tumblr com 这是一个 URL 字段 其中有一些褪色的文本 然后当您单击它并键入时 它会附加一些文本 tumblr com 您
  • 如何在 DOM 中的每个元素中调用函数,即使它们是动态创建的

    我想对 DOM 上的特定元素调用函数 例如 red css backgroundColor pink 它适用于 DOM 中已经存在的任何元素 但我也希望在动态添加到 DOM 的元素中调用此方法 我尝试过类似的事情 red on functi
  • 与 IE8 兼容的最新 jQuery 版本是什么?

    我正在开发 Bootstrap 3 网站 并且我使用的 jQuery 版本 1 9 1 遇到了一些问题 我升级到 2 1 0 我的问题消失了 但是 这破坏了 IE8 兼容性 因为 2 1 0 不再支持 IE8 并且 jQuery 在该浏览器
  • 如何通过 jQuery 中的类获取特定 html 元素的innerHTML?

    我有这样的 HTML 代码 div class a html value 1 div div class a html value 2 div 我怎样才能访问html value 1 and html value 2使用jquery 分别地
  • PDF 在 Safari 中隐藏 Jquery Modal

    这是与我有关的事情this https stackoverflow com questions 24052681 pdf hide jquery modal in ie问题 在 IE 中 我在对话框中使用 iframe 解决了问题 所以它工

随机推荐