数据表:当用户根据条件单击选项卡时,如何将数据加载到网格中



所以我在一个使用DataTables API的网站上工作,该网站提供有关故障排除视频的信息。在我的数据表中有所有状态、批准、认证和拒绝的视频状态选项卡,允许您浏览不同状态的视频。

为了效率,我传入一个"所有视频"JSON对象,而不是为每个类别的视频传入一个JSON对象。所以我要做的是过滤第一列,也就是"所有视频"表上的状态,找到我要找的状态。例如,当您点击"Approved"选项卡时,我希望显示GRID.column(0).data() =="Approved"的所有表行。

下面是我在pageSetUp()函数中的代码:
     $("#VideoReviewTabs li").on("click", function (e) {
        $("#VideoReviewTabs li").removeClass("active");
        $(this).addClass("active");
        loadSelectedList($(this).data("listname"));
    });

下面是loadApprovedVideosTab()函数:

    function loadApprovedVideosTab() {
       var GRID = $("#VIDEO_GRID").DataTable();
       var typeCol = GRID.column(0).data();
       GRID.column(0).data().filter(function (value, index) {
        return value == "Approved" ? true : false;
       });
    }

这个过滤函数肯定不起作用,选择各种选项卡对表网格没有任何作用。loadApprovedVideosTab()函数确实被调用了,但是过滤显然不起作用。

任何建议都会很好。谢谢。

我认为这是因为你的函数不返回任何东西…试着

function filterApprovedVideosTab() {
   var GRID = $("#VIDEO_GRID").DataTable();
   // var typeCol = GRID.column(0).data();
   return GRID.column(0).data().filter(function (value, index) {
    return value == "Approved" ? true : false;
   });
}
var approved = filterApprovedVideosTab();

为了获得Approved视频,您可以在相应的列上使用search函数,然后调用draw:

function loadApprovedVideosTab() {
   var GRID = $("#VIDEO_GRID").DataTable();
   GRID.column(0).search('Approved').draw();
}

参考。

最新更新