2010-08-04 2 views
2

Итак, я использую плагин asmSelect для создания списков, но также пытаюсь использовать его для редактирования существующих списков. asmSelect позволяет вручную сортировать/упорядочивать выбранные параметры перед отправкой.Плагин jQuery, asmSelect, не сохраняет порядок сортировки

Моя проблема в том, что когда я иду и захватываю отсортированный список пользователей из базы данных и позволяю asmSelect делать свою работу на моей странице по умолчанию (потому что это множественный выбор), он просто заказывает выбранные параметры в любом порядке исходных параметров в выбранном элементе. Поэтому, не сохраняя мой порядок сортировки вообще ...

Кто-нибудь еще видел этот вопрос еще и есть решение?

+0

Мне тоже нужно решение. – David

ответ

0

Такая же проблема здесь.

В моем случае я заметил, что список из 12 пунктов со значениями от 0 до 11 был отсортирован как 0, 1, 10, 11, 2, 3 ... Я хочу сказать, что вместо упорядоченного порядка строк вместо порядкового порядка. Может быть, есть способ заставить asm-select делать преобразование в числа или сортировать по числовому порядку?

EDIT: nevermind, я пытался использовать строку «option_1», «option_2» и т. Д. Для ее заказа. Если значения, которые он использует для заказа, не являются допустимой числовой строкой, она возвращается к порядку в виде строки.

Kchau, может быть, вы не храните заказ в дополнительном поле или используете поле id базы данных для определения порядка в quitch опциях, где хранится? Как только вы получили заказ, который хранится (или обнаруживается, что вы предпочитаете), это вопрос создания значения rel для кода для заказа. Я генерируя что-то вроде этого:

<option value="202">A news item</option> 
<option value="164">Another news item</option> 
<option value="162">More boring news</option> 
<option value="175" rel="option_00000" selected="selected">One of the selected news</option> 
<option value="15" rel="option_00001" selected="selected">Another interesting selected news</option> 
<option value="204" rel="option_00002" selected="selected">This interesting news was selected too</option> 

этого значения отно, что упорядочивает список

1

Я также попытался построить первоначально выбранный список в порядке из базы данных. Я закончил обновление asmselect. See updated asmselect code and example here.

В моем JSP:

<select id="availableItems" class="multiselect" name="menuDishes" multiple="multiple" title="Select items"> 
    <c:forEach var="item" items="${myAvailableItems}"> 
     <option value="${item.id}" data-sortby="${fn:indexOf(mySelectedItems, item.name)}" ${fn:contains(mySelectedItems, item.name) ? 'selected="selected"' : ''}>${item.name}</option> 
    </c:forEach> 
</select> 
0

Место следующее, прежде чем начать ассемблер выбрать:

$('#id_of_your_select').html($("option", $('#id_of_your_select')).sort(function(a, b) { 
    var arel = $(a).attr('rel'); 
    var brel = $(b).attr('rel'); 
    return arel == brel ? 0 : arel < brel ? -1 : 1 
})); 

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

$("select[multiple]").asmSelect({ 
    addItemTarget: 'bottom', 
    animate: false, 
    sortable: true, 
    highlight: false 
}); 

И убедитесь, что при сохранении строк в базе данных они поддерживают этот порядок, и когда вы их собираете при загрузке страницы, они также остаются в том же порядке.

Смежные вопросы