jQuery jTable清空所有行

时间:2018-01-27 09:28:34

标签: jquery jquery-jtable

我想清空jTable中的所有行。有没有办法用其他东西做到这一点,除了:

   $("div[id=tblContacts] tr").remove();

我在jTable的源代码中看到了这个方法,但它是一个私有方法:

 /* Removes all rows in the table and adds 'no data' row.
        *************************************************************************/
        _removeAllRows: function (reason) {
            //If no rows does exists, do nothing
            if (this._$tableRows.length <= 0) {
                return;
            }

            //Select all rows (to pass it on raising _onRowsRemoved event)
            var $rows = this._$tableBody.find('tr.jtable-data-row');

            //Remove all rows from DOM and the _$tableRows array
            this._$tableBody.empty();
            this._$tableRows = [];

            this._onRowsRemoved($rows, reason);

            //Add 'no data' row since we removed all rows
            this._addNoDataRow();
        },

此方法甚至添加空行。有办法打电话吗?

2 个答案:

答案 0 :(得分:2)

jTable插件不仅仅是一个网格/表画家,它为数据库提供了一个简单的CRUD接口。一旦给出了各种CRUD操作的URL,它将显示从服务器发送的数据并在服务器上管理该数据。 _removeAllRows方法是正确的私有方法,在分页或重新加载表时预测新数据时使用。

鉴于jTable是数据库前端的上下文,清空所有行意味着什么?如果这意味着删除数据库中的所有行,则存在jtable方法deleteRows http://jtable.org/ApiReference/Methods#met-deleteRows

但我怀疑这不是问题的意思。在JTable范例中,呈现空jTable的最佳方式是请求服务器发送空列表。这是过滤函数的特例,因此请使用jTable load方法http://jtable.org/ApiReference/Methods#met-load。您可以在服务器请求上使用flag来返回空列表。

$('#myjtable').jtable('load',{empty: 'true'});

或构造一个始终为空列表的过滤器请求。

$('#myjtable').jtable('load',{id: 0});

选择最适合您服务器代码的方法。 load方法确实需要ajax请求,并且在服务器上有一点工作。如果这是不可接受的(我并不意味着不受欢迎),那么您可以使用函数替换简单的操作URL,您可以在其中返回空列表,或者自己执行ajax请求以获取实际数据。与单线解决方案相比,要编写的代码要多得多。

答案 1 :(得分:1)

可以从客户端进行操作,但是页面计数器不会重置。

$('#tableId').data('hikJtable')._removeAllRows();