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

时间:2014-07-23 15:26:52

标签: javascript jquery json datatables

因此,我使用DataTables API在网站上工作,该API提供有关视频疑难解答的信息。我的数据表中包含所有状态,已批准,已认证和已拒绝的视频状态标签,可让您浏览具有不同状态的视频。

为了提高效率,我传递了一个"所有视频" JSON对象,而不是为每个vidoes类别传入JSON对象。所以我要做的就是在我的"所有视频"上过滤第一列,即状态。表并找到我正在寻找的状态。例如,当您点击"已批准"选项卡,我想显示所有表格行,其中GRID.column(0).data()=="已批准"。

这是我在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()函数确实被调用,但过滤显然不起作用。

任何建议都会很棒。感谢。

2 个答案:

答案 0 :(得分:0)

我认为这是因为你的功能并没有返回任何东西......试试

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();

答案 1 :(得分:0)

要获取Approved个视频,您可以使用相应列上的search函数,然后调用draw:

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

Reference.