YUI DataTable сортировать номер со ссылкой - PullRequest
1 голос
/ 06 января 2010

У меня есть столбцы, которые в основном

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

Если я задаю parser:"number" для столбца, я получаю пустой столбец, но если нет, сортировка не является числовой.

Есть ли лучший анализатор, который может обрабатывать ссылки вокруг числа?

Код для http://paulisageek.com/compare/cpu/

Ответы [ 2 ]

2 голосов
/ 06 января 2010

7 просмотров, новая минимальная запись для меня, когда я найду ответ.

Я должен был определить свою собственную функцию сортировки (используя неопределенный третий параметр 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 голос
/ 06 января 2010

Вы должны определить пользовательский анализатор для этого поля, чтобы извлечь число из тега супа.

Что-то вроде

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