【问题标题】:Kendo UI Grid reload data errorKendo UI Grid 重新加载数据错误
【发布时间】:2023-03-19 15:02:01
【问题描述】:

我有一个带有 angularjs 的 Kendo UI Grid:当我在选择控件中更改一个项目时,我想重新加载网格中的数据,并将所选 id 传递给 url。

所以,在我的角度控制器中:

...
var id = 0;
$scope.pers = new kendo.data.DataSource({
    transport: {
        read: {
            url: "api/Pers?role=" + id,
            dataType: "json"
        }
    },
    schema:
    ...
    ...
});

当我在选择控件中选择一个元素时,我会正确调用此函数,传递所选项目的 id 并重新加载网格的数据

$scope.setRole = function(tmpId){
    id = tmpId;
    $scope.pers.read();
};

当我更改选择控件中的元素时,会向 url 正确发送请求:

"api/Pers?role=" + id

但当我更改选择时,id 始终为 0。

我该如何解决这个问题?

【问题讨论】:

    标签: javascript jquery angularjs kendo-ui kendo-grid


    【解决方案1】:

    试试这个:

    var id = 0;
    $scope.pers = new kendo.data.DataSource({
        transport: {
            read: {
                url: function() {
                   return "api/Pers?role=" + id;
                },
                dataType: "json"
            }
        },
        schema:
        ...
        ...
    });
    

    基本上,如果您的读取 URL 是动态的,您应该通过函数定义 url,以便它动态地重新生成读取 URL。

    可以这么说,您目前所做的方式是静态的。 Kendo 已将默认 id 0 散列到您的 url 字符串中,并且该 url 始终保持不变,尽管您稍后更改了 id 值。

    【讨论】:

    • @Tom,很高兴它成功了!也只是让你知道,我相信我在 url 函数之后的原始答案中缺少逗号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    相关资源
    最近更新 更多