You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ajax调用删除数据库数据后移除Kendo Grid中的行

搞定Kendo Grid:Ajax删除成功后移除对应行的正确姿势

嘿,我明白你折腾这个Kendo Grid删除行的问题有多头疼!之前试了各种方法都没生效对吧?别担心,咱们一步步来解决,核心就是在deleteDataReportRecords里精准拿到要删的行,等Ajax接口返回成功后再调用Grid的移除方法。

第一步:先把要删的行/数据项抓准

不管你是选中单行删除,还是每行自带删除按钮触发操作,首先得正确获取目标行和对应的数据。比如:

function deleteDataReportRecords() {
    // 先拿到Kendo Grid的实例,这是一切操作的基础!
    var grid = $("#你的GridID").data("kendoGrid");
    
    // 场景1:选中单行后点击删除按钮
    var selectedRow = grid.select();
    if (!selectedRow.length) {
        alert("先选一行再删呀~");
        return;
    }
    // 从选中行里取出对应的数据项,方便拿要传给接口的标识
    var targetData = grid.dataItem(selectedRow);
    var ttvUids = targetData.TTvUids; // 替换成你实际存唯一标识的字段名

    // 场景2:每行自带删除按钮(比如按钮class是delete-btn)
    // 这种情况可以在按钮点击事件里先拿到行:
    // var row = $(this).closest("tr");
    // var targetData = grid.dataItem(row);

第二步:调用Ajax接口,成功后删行

接下来调用你的ajaxRemoveTTvUidsCall接口,在成功回调里执行Grid的移除操作:

// 调用删除接口,把拿到的ttvUids传进去
    ajaxRemoveTTvUidsCall(ttvUids, 
        function(successResponse) {
            // 这里根据你接口的响应格式判断是否删除成功
            if (successResponse.isSuccess) { // 替换成你实际的成功判断条件
                // 重点!用Grid的remove方法删掉目标行,两种方式都可以:
                grid.remove(selectedRow); // 用选中的行元素删
                // 或者用数据项删:grid.remove(targetData);
                alert("删成功啦!");
            } else {
                alert("删除失败:" + successResponse.msg);
            }
        },
        function(error) {
            alert("请求出问题啦:" + error.statusText);
        }
    );
}

踩坑提醒(这些可能是你之前失败的原因!)

  • Grid实例一定要拿对:必须用$("#GridID").data("kendoGrid"),不能直接用jQuery对象操作,否则调用remove会无效。
  • 行元素别拿错:如果是按钮触发,一定要用closest("tr")找到当前行,不能随便选行,不然删错就麻烦了。
  • 作用域别搞混:如果Ajax回调里拿不到Grid或者行对象,记得把这些变量存在闭包里(比如在函数开头定义,别在局部作用域里)。
  • 数据源自动同步:只要你用的是Kendo Grid自带的数据源,删除行后数据源会自动更新,不用额外刷新Grid哦~

按照这个流程调整,应该就能解决你之前的问题啦!

内容的提问来源于stack exchange,提问作者Sarah Duffy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:28:09