Jquery Tablesorter, сортировка по ссылкам, а не по ссылкам - PullRequest
4 голосов
/ 22 сентября 2009

Я использую 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

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

Спасибо

Ответы [ 2 ]

8 голосов
/ 25 января 2010

У меня та же проблема. Нашел решение в Документации . Нужно добавить парсер для ссылок, который удаляет теги <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>
2 голосов
/ 02 октября 2009

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

, например

<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>
...