【问题标题】:Implementing Delete and Edit operations in jqgrid在 jqgrid 中实现删除和编辑操作
【发布时间】:2011-10-31 09:36:30
【问题描述】:

我有以下 JQgrid 实现

    colModel: [
                { name: 'NameEn', index: 'NameEn', width: 100, align: 'left' },
                { name: 'Desc', index: 'Desc', width: 100, align: 'left' },
                { name: 'ID', index: 'ID', width: 100, align: 'left', hidden:true }
],
    caption: "Management",
    gridview: true,
    rownumbers: true,
    rownumWidth: 40,
    scroll: 0,
    rowNum: 100,
    sortname: 'ID',
    pager: '#pager',
    sortorder: "asc",
    viewrecords: true,
    autowidth: true,
    width: '100%',
    height: '100%',
    jsonReader: { root: "GridData", page: "CurrentPage", total: "TotalPages", records: "TotalRecords", repeatitems: false, id: "00" }

};

SectorGrid.prototype.SetupGrid = function (selector) {
    jQuery(selector).html('<table id="grid"></table><div id="pager"></div>');
    var grid = jQuery("#grid").jqGrid(this.gridConfiguration);

    jQuery("#grid").navGrid('#pager',{edit:false,add:false,del:true,search:false})
};

我想添加一个删除功能,删除调用一个带有 url http://localhost/services.svc/sector(id 的 web 服务,并且该服务只需获取 id,它会自行处理所有内容,我也想使用不同的 url @987654322 编辑数据@ 并接收具有上述相同信息的 json 对象。我真的尝试过配置它,但它不起作用有人可以帮我解决这个问题,如果你在 jqgrid 或自定义按钮中使用删除选项,但我不想使用 editurl 属性,这无关紧要。

请举一个完整的例子如何实现这个继续我上面的代码

更新:休息方法

[WebInvoke(UriTemplate = "Sector({iD})/", Method = "DELETE",  ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
        [OperationContract]
        bool DeleteSector(string iD)

提前致谢

【问题讨论】:

  • 网址http://localhost/services.svc/sector(id) 让我觉得有点奇怪。您能否包含您的 WCF 服务的 sector 方法的原型?

标签: javascript jquery web-services jqgrid grid


【解决方案1】:

尝试在表单中使用navGrid

jQuery("#grid").jqGrid('navGrid', '#pager',
    {edit: false, add: false, search: false}, {}, {},
    { // Delete parameters
        ajaxDelOptions: { contentType: "application/json" },
        mtype: "DELETE",
        serializeDelData: function () {
            return ""; // don't send and body for the HTTP DELETE
        },
        onclickSubmit: function (params, postdata) {
            params.url = '/Sector(' + encodeURIComponent(postdata) + ')/';
        }
    });

【讨论】:

  • 嗨奥列格,感谢您的回复,但对我来说还不够清楚(我是 jquery 的菜鸟 :))我将您的代码添加到我的网格导航中并自定义了 url 我应该做些什么吗?我怎么能发送ID?你能解释一下吗,再次感谢,我很感激
  • @Amadi:postdata 应该是 id。这应该是全部。如果程序仍然无法运行,您可以在 Fiddler 中验证 DELETE 请求将发送到哪个 URL。
  • @Madi:通常是的(例如onclickSubmit 也存在于editGridRow),但必须向服务器发送另一个信息。函数serializeEditData 和属性ajaxEditOptions 可以帮助你。
  • 我再次需要您的惊人帮助,我认为网格编辑选项对我不起作用,因为我在网格中显示了部分接收到的数据,而其他数据被隐藏了,请您帮助我如何填写我的使用带有所选行 id 的编辑按钮准备构建的表单将调用 wcf 服务并填写表单,我只需要可以使用所选行 id 调用 wcf 的部分感谢您的出色帮助
  • @Madi:您可以在我的回答中使用navGrid 的编辑和添加选项,即{}, {},。您可以在这两种情况下设置ajaxEditOptions: { contentType: "application/json" }, recreateForm: true, serializeEditData: function (postdata) { return JSON.stringify(postdata); }。对于编辑设置,您可以使用 mtype: "PUT" 并针对 onclickSubmit: function (params, postdata) { params.url = urlEdit + '/' + postdata.list_id; } 修改编辑 URL。这里list 是网格的&lt;table&gt; 元素的id。是你问的吗?
猜你喜欢
  • 2014-11-08
  • 1970-01-01
  • 2012-05-02
  • 1970-01-01
  • 1970-01-01
  • 2011-11-05
  • 2011-12-27
  • 1970-01-01
  • 2012-06-18
相关资源
最近更新 更多