YUI DataTable带链接的排序号

时间:2010-01-06 04:39:19

标签: datatable yui yui-datatable yui2

我的列基本上是

<td><a href="somewhere">399.99</a>

如果我在列上设置parser:"number",我会得到一个空白列,但如果我没有,则排序不是数字排序。

是否有更好的解析器可以处理数字周围的链接?

代码适用于http://paulisageek.com/compare/cpu/

2 个答案:

答案 0 :(得分:2)

7次观看,这是我找到答案时的最新记录。

我必须定义自己的排序函数(使用未定义的第3个参数http://yuilibrary.com/projects/yui2/ticket/2528649)。

function sortNumbersWithLinks(a, b, desc, field) {
    a = a.getData(field).replace(/<[^>]+>/, '');
    b = b.getData(field).replace(/<[^>]+>/, '');

    a = parseFloat(a);
    b = parseFloat(b);

    return YAHOO.util.Sort.compare(a, b, desc);
}

var myColumnDefs = [
             {key:"Name", sortable:true},
             {key:"Performance", sortable:true, sortOptions:{sortFunction:sortNumbersWithLinks}},
             {key:"Price", sortable:true, sortOptions:{sortFunction:sortNumbersWithLinks}},
             {key:"Performance / Price", sortable:true, parser:"number"},
];

答案 1 :(得分:1)

您必须为该字段定义自定义解析器,以从标记汤中提取数字。

这样的东西
{
    key: 'num_in_there_somewhere',
    parser: function (html) {
        return +html.replace(/<.*?>|\s/g, '');
    }
}