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

如何在Ajax POST请求后重新加载Bootstrap Table(ASP.NET MVC场景)

嘿,刚好我之前在ASP.NET MVC项目里用Bootstrap Table的时候也遇到过这个需求,给你几个实用的解决办法:

方案1:直接调用Bootstrap Table内置的refresh方法

这是最省心的方式,Bootstrap Table本身就提供了刷新数据的API,你只需要在Ajax POST请求的成功回调里调用它就行。

首先确保你的表格初始化是正常的(如果一开始用ViewBag加载静态数据,初始化代码大概是这样):

$(function() {
    $('#cT').bootstrapTable({
        data: @Html.Raw(Json.Encode(ViewBag.YourTableData)),
        columns: [
            { field: 'Name', title: 'Name' },
            { field: 'DateTime', title: 'Date & time' },
            { field: 'Type', title: 'Type' },
            { field: 'HomeworkDone', title: 'Homework done' },
            // 剩下的列配置
        ]
    });
});

然后写你的Ajax POST请求,在成功后触发刷新:

// 假设这是你的提交按钮点击事件
$('#yourSubmitBtn').click(function() {
    $.ajax({
        url: '@Url.Action("YourPostAction", "YourController")', // 替换成你的POST接口地址
        type: 'POST',
        data: {
            // 这里放你要提交的参数,比如name: $('#nameInput').val()
        },
        success: function(response) {
            // 先给用户个反馈,比如提示操作成功
            alert('操作已完成!');
            
            // 核心:调用refresh方法重新加载表格
            // 如果你的表格是配置了从服务器接口拉数据,refresh会自动重新请求接口
            $('#cT').bootstrapTable('refresh');
            
            // 要是你是用本地数据(比如从POST响应里拿到新数据),可以用load方法直接替换数据源:
            // $('#cT').bootstrapTable('load', response.NewTableData);
        },
        error: function(xhr) {
            console.error('请求出错了:', xhr.responseText);
            alert('操作失败,请稍后重试');
        }
    });
});
方案2:销毁后重新初始化表格(适合复杂场景)

如果你的表格有复杂的配置,或者需要完全重置状态,可以先销毁现有表格,再用最新数据重新初始化:

$.ajax({
    url: '@Url.Action("YourPostAction", "YourController")',
    type: 'POST',
    data: { /* 提交参数 */ },
    success: function() {
        // 先销毁旧表格
        $('#cT').bootstrapTable('destroy');
        
        // 从服务器拉取最新数据,再重新初始化
        $.get('@Url.Action("GetUpdatedData", "YourController")', function(latestData) {
            $('#cT').bootstrapTable({
                data: latestData,
                columns: [
                    // 列配置和之前一致
                    { field: 'Name', title: 'Name' },
                    { field: 'DateTime', title: 'Date & time' },
                    { field: 'Type', title: 'Type' },
                    { field: 'HomeworkDone', title: 'Homework done' }
                ]
            });
        });
    }
});
几个小提醒
  • 建议把原来用ViewBag传数据的方式改成通过服务器接口获取数据,这样刷新的时候能直接拿到最新的数据库数据,毕竟ViewBag是页面加载时生成的静态数据,动态刷新没法更新它。
  • 如果刷新时需要传递额外参数给接口,可以用refreshOptions来配置:
    $('#cT').bootstrapTable('refreshOptions', {
        queryParams: {
            filter: 'someValue',
            page: 1
        }
    });
    
  • 确保你的POST接口执行完数据库操作后,后续的Get接口能正确返回更新后的数据哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:25:01