jQuery jTable清空所有行

jQuery jTable empty all rows

我想清空 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();
        },

此方法甚至添加空行。有什么方法可以调用吗?

jTable 插件不仅仅是一个网格/table 画家,它还为数据库提供了一个简单的 CRUD 接口。一旦为各种 CRUD 操作提供了 URL,它将显示从服务器发送的数据并在服务器上管理该数据。 _removeAllRows 方法是正确的私有方法,在 table.

的分页或重新加载期间预期新数据时使用

鉴于 jTable 是数据库的前端,清空所有行是什么意思?如果是指删除数据库中的所有行,那么还有jtable方法deleteRowshttp://jtable.org/ApiReference/Methods#met-deleteRows.

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

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

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

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

选择最适合您服务器代码的方法。 load 方法确实需要一个 ajax 请求,并在服务器上做一些工作。如果那是 unacceptable (我不是说不受欢迎)那么你可以用一个函数替换简单的动作 URL,在这个函数中你可以 return 一个空列表,或者执行 ajax 要求自己获取实际数据。与提供的单行解决方案相比,要编写的代码要多得多。

客户端可以,但页面计数器不会重置。

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