JqGrid сортировка по тегу href, а не по содержимому - PullRequest
0 голосов
/ 28 марта 2011

Я сейчас пробую плагин jqGrid. Все работает хорошо, ожидайте сортировки по определенному столбцу.

У меня есть таблица, к которой я пытаюсь применить плагин.

<script type="text/javascript">
    $(document).ready(function () {
        tableToGrid("#myTable", {})
    });
</script>

<table id="myTable">
    <thead>
        <tr>
            <th>
                Web Site
            </th>
        </tr>
    </thead>
<tbody>
        <tr>
            <td>
                <a href="http://www.jsmith.com/4093">Hello</a>
            </td>
        </tr>
        <tr>
            <td>
                <a href="http://www.jsmith.com/4094">Bob</a>
            </td>
        </tr>
        <tr>
            <td>
                <a href="http://www.jsmith.com/4093">Loblaws</a>
            </td>
        </tr>
        <tr>
            <td>
                <a href="http://www.jsmith.com/4093">Wahoo</a>
            </td>
        </tr>
    </tbody>
</table>

Когда я сортирую столбец, заказ появляется как

Привет, Loblaws, Wahoo, Bob

вместо

Боб, Привет, Loblaws, Wahoo

Похоже, это сортировка тега href, а не содержимого.

Очень похоже на эту проблему (просто другой плагин) - Проблема сортировщика таблиц с содержимым

Ответы [ 3 ]

1 голос
/ 29 марта 2011

Вы можете перейти к пользовательскому формататору custom_formatter . Это поможет вам в случае сортировки на основе содержимого href, как в jqgrid, я чувствую, что это невозможно.

Альтернатива, выможет передать еще один столбец, содержащий содержимое href, и отсортировать столбец href на основании этого, хотя это не является предпочтительным.

1 голос
/ 29 марта 2011

Причина, по которой у вас такой странный порядок сортировки, заключается в том, что при использовании jqGrid в настоящее время вы создаете сетку, имеющую один столбец с данными string .Строковые данные будут:

"\n                <a href=\"http://www.jsmith.com/4093\">Hello</a>\n            "
"\n                <a href=\"http://www.jsmith.com/4094\">Bob</a>\n            "
"\n                <a href=\"http://www.jsmith.com/4093\">Loblaws</a>\n            "
"\n                <a href=\"http://www.jsmith.com/4093\">Wahoo</a>\n            "

Как вы можете видеть строку, которая содержит подстроку «Bob», имеет «4094» раньше.Таким образом, строка будет последней строкой в ​​порядке сортировки.

Вы можете улучшить ситуацию, используя второй options параметр tableToGrid, но лучшим способом было бы сделать четкое разделениеинформация о тексте, отображаемом в столбце (например, «Bob», «Hello») и т. д. из данных url.Тогда сортировка по столбцам будет именно такой, как вы хотите.Поэтому лучше не использовать функцию tableToGrid для ваших данных и создавать jqGrid прямым способом.

Поскольку я не знаю, из какого источника вы получаете информацию об URL для текстов, этоТрудно дать вам некоторые рекомендации для лучшей реализации.Вы можете найти примеры того, как создавать ссылки в jqGrid здесь и здесь .Я думаю, что вы можете легко изменить примеры для ваших целей.

0 голосов
/ 29 марта 2011

tableToGrid не сортирует вашу таблицу, она только превращает вашу таблицу в сетку.Для сортировки на стороне клиента это может вам помочь. jqGrid сортировка на стороне клиента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...