Jquery Tablesorter, сортировка по URL-адресу ссылки, а не по содержимому ссылки

Я использую Tablesorter для таблицы, которая использует ссылки в первом столбце (из 4). Проблема в том, что в FF и Chrome он упорядочивает первый столбец при нажатии на URL-адрес, а не на содержимое ссылки. Например

<tr><td><a href="http://abc.com">zzz</a></td><td>11</td><td>22</td><td>33</td></tr>
<tr><td><a href="http://cba.com">aaa</a></td><td>11</td><td>22</td><td>33</td></tr>
<tr><td><a href="http://bbb.com">ccc</a></td><td>11</td><td>22</td><td>33</td></tr>

Он закажет

zzz
ccc
aaa

вместо алфавитного. Это должно быть так? Есть ли исправление, которое кто-нибудь может предложить?

Спасибо


person Community    schedule 22.09.2009    source источник


Ответы (2)


У меня такая же проблема. Решение найдено в документации. Нужно добавить парсер для ссылок, который удаляет теги <a> из начала текста в столбце при сортировке.

Вот код, который должен решить вашу проблему:

 <script type="text/javascript">
    // add parser through the tablesorter addParser method 
    $.tablesorter.addParser({
        // set a unique id 
        id: 'links',
        is: function(s)
        {
            // return false so this parser is not auto detected 
            return false;
        },
        format: function(s)
        {
            // format your data for normalization 
            return s.replace(new RegExp(/<.*?>/),"");
        },
        // set type, either numeric or text
        type: 'text'
    }); 


    // Apply "links" parser to the appropriate column
    $(document).ready(function()
    {
        $("#MyTable").tablesorter({
            headers: {
                0: {
                    sorter: 'links'
                }
            }
    });
</script>
person Kirill    schedule 25.01.2010
comment
что вы имеете в виду под автоматическим определением? - person Fabio B.; 09.09.2011

Я исправил это, вставив диапазон со стилем display:none перед ссылкой. В промежутке поместите текст ссылки.

e.g.

<td><span style="display:none"><%= Html.Encode(item.Name) %></span>
                <a href='<%= Url.Action("Edit", new {id=item.Id}) %>'>
                    <%= Html.Encode(item.Name) %></a>
            </td>
person Community    schedule 02.10.2009