2

删除操作似乎是 YUI 数据表中最慢的。我有一个 > 300 行的数据表。我需要删除选定的行。我尝试从 中删除选定的记录recordset,然后调用table.render().. 虽然这没关系,但可以做得更好吗?

4

3 回答 3

2

查看有关数据表小部件的“deleteRow”方法的 API 文档(位于http://developer.yahoo.com/yui/docs/YAHOO.widget.DataTable.html#method_deleteRow)。在我看来,这就是您想要的。也许是这样的:

var selected = theDataTable.getSelectedRows();
var rset = theDataTable.getRecordSet();

for (var x = 0; x < selected.length; x++) {
    theDataTable.deleteRow(rset.getRecordIndex(rset.getRecord(selected[x]))
}
于 2008-12-06T20:39:31.637 回答
1

不,这比我写的要慢。在这里,您逐行删除,并且每次都必须重新渲染数据表。

我所做的是从他的记录集中删除这些记录,然后将数据渲染一次。那更快,但不是很多。

于 2008-12-07T06:40:51.423 回答
0

据我所知,这是从 yui 数据表中删除一行的最快方法。但是,为了您的用户着想,除非需要 300 行,否则您应该考虑在 2.6.0 版中改进的分页(并且已被拆分,现在可以用于其他对象,而不仅仅是 DataTable)。

于 2008-12-08T15:04:25.980 回答