首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >刷新我的jQuery dataTable的具体示例?

刷新我的jQuery dataTable的具体示例?
EN

Stack Overflow用户
提问于 2012-12-06 14:43:31
回答 2查看 8.7K关注 0票数 1

我有下面的jQuery dataTable

代码语言:javascript
复制
$("#my-datatable").dataTable( {
    "bProcessing" : true,
    "bPaginate": false,
    "bLengthChange": false,
    "bFilter": true,
    "bSort": false,
    "bInfo": false,
    "bAutoWidth": false,
    "sAjaxSource" : "/myServer/getAllWidgets",
    "sAjaxDataProp" : "",
    "bDestroy" : true,
    "fnServerData" : function(sSource, aoData, fnCallback) {
        aoData.push({
            "name" : "widgetName",
            "value" : wName
        });

        request = $.ajax({
            "dataType" : "json",
            "type" : "GET",
            "url" : sSource,
            "data" : aoData,
            "success" : fnCallback
        });
    },

    "aoColumns" : [
        {
            "mDataProp" : "widgetType"
        },
        {
            "mDataProp" : "widgetValue"
        },
        {
            "mDataProp" : "widgetFactor"
        }
    ]
});

这成功地访问了我在/myServer/getAllWidgets的web服务器,并在我的UI上填充了一个3列的dataTable (列标题是: Type、Value和Factor)。到目前一切尚好。

问题是,支持此widgets MySQL表的dataTable经常发生更改,我希望在UI中添加一个按钮,以便当用户单击该按钮时,dataTable会被刷新,这意味着/myServer/getAllWidgets将再次运行,并向用户显示正确的记录/值。

在过去的一天里,我一直试着让它发挥作用,而我所尝试的一切都失败了。就我个人而言,我不在乎如何获得这种“刷新”功能,也不关心解决方案是否完全不涉及fnReloadAjax (这正是我一直在努力实现的)。我只需要一些有用的东西:

代码语言:javascript
复制
<div id="refresh-button-div">
    <input type="button" id="refreshButton" onclick="refreshData"/>
</div>

// In JS
$("#refreshButton").click(function() {
    // ???
});

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-06 14:48:21

您可以使用fnDraw函数重新绘制表。试试这个:

代码语言:javascript
复制
var $dataTable = $("#my-datatable").dataTable({ /* setup */ });

$("#refreshButton").click(function() {
    $dataTable.fnDraw();
});

阅读fnDraw条目在文档中。

票数 2
EN

Stack Overflow用户

发布于 2012-12-06 15:36:36

我使用fnReloadAjax();从ajax源重新加载表数据。

代码语言:javascript
复制
$("#refreshButton").click(function() {
    oTable.fnReloadAjax();
});

只要改变

代码语言:javascript
复制
$("#my-datatable").dataTable( {...

转到

代码语言:javascript
复制
oTable = $("#my-datatable").dataTable( {...//make oTable a global var in your js

您可以从这里获取这个可数据插件源代码fnReloadAjax,将其放到一些js文件中,并将其包含在您的页面中.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13746000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档