【问题标题】:Why does my jsGrid refuse to update an edited row?为什么我的 jsGrid 拒绝更新已编辑的行?
【发布时间】:2016-10-19 00:53:20
【问题描述】:

我知道还有其他选择,但我真的很想在我的项目中使用 jsGrid。我正在使用他们网站上指示的 1.5.2 版本,并从 CDN 中提取它。我想要的只是按照描述调用更新,以便我可以执行$.ajax,但似乎该回调没有做任何事情。这是我的实现:

$(function() {
        $("#jsGrid").jsGrid({
            width: "100%",
            height: "600px",

            inserting: false,
            editing: true,
            sorting: true,
            paging: false,
            autoload: true,

            controller: {
                loadData: function(filter) {
                    return $.ajax({
                        type: "GET",
                        url: "@Url.Action("getOptions", New With {.communityID = 1})",
                        data: filter
                    });
                },

                updateItem: function (item) {
                    console.log('hello??');
                    return $.ajax({
                         type: "PUT",
                         url: "/items",
                         data: item
                    });
                }
            },

            ...
        });
    })
  • 它在文档中说控制器方法是预期的 返回承诺。没关系,因为我使用的是 jQuery 3.0,并且 $.ajax 返回一个现在标准化的 Javascript Promise/A(即 jsGrid 期望什么)。

  • 我知道控制器对象被正确理解,因为它 调用loadData(),并从我的 REST 中填充漂亮的行 服务。

  • 在查看了许多其他示例之后,似乎每个人都可以使用文档中提供的非常简单的代码来使用它。我的console.log 永远不会在断点上命中,AJAX 调用永远不会发生在网络选项卡中。

  • 我切换到 jsgrid.js 的非缩小版,我从未收到任何控制台错误。

  • 当我模糊一行(从我正在编辑的一行移开)时,值会恢复到最初的样子。

也许我只是不明白它是如何工作的?要将编辑持久化到我的数据库,我应该寻找不同的事件吗?任何帮助将不胜感激!

【问题讨论】:

  • 您希望何时调用updateItemupdateItem 应该在编辑后保存后调用。您是否有发布在任何地方的示例以查看问题?

标签: javascript jsgrid


【解决方案1】:

在这里回答,以防有人搜索。

我希望在编辑字段然后模糊时触发 updateItem 事件。情况并非如此——您必须包含一个“控制”字段,默认情况下会给您一个保存按钮。这对我的目的来说很好。

$("#jsGrid").jsGrid({
    .
    .           
    fields: [
        .
        .
        { type: "control" }
    ]
}); 

【讨论】:

    猜你喜欢
    • 2012-09-28
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    • 2012-04-12
    • 2023-04-02
    • 1970-01-01
    相关资源
    最近更新 更多