2015-08-27 2 views
0

Существует очень красивое решение весной, чтобы заполнить вверх списка выбора из переменной EL, таких как:dijit form filteringselect не поддерживает опции в переменной EL?

<form:select id="customerentity_customerTitle" path="customerTitle" cssStyle="width:300px;"> 
    <form:option value="None" label="*** Select Your Title ***"></form:option> 
    <form:options items="${fn:split(title_t, ',')}" /> 
</form:select> 

Это JSTL и яровой решение может быть применен легко и очень привязанность.

Когда я попытался найти подобное решение в Dojo. Я нашел наиболее близкое решение: dijit/form/FilteringSelect, но когда я пытаюсь использовать аналогичный способ для заполнения динамического сгенерированного раскрывающегося списка, он не работает.

<select id="customerentity_customerTitle" name="customerTitle" style="width: 300px;" data-dojo-type="dijit/form/FilteringSelect" 
    data-dojo-props="value: '${customerentity.customerTitle}',placeHolder: 'Select Your Title',options:'${fn:split(title_t, ',')}'"> 
</select> 

Мой вопрос: есть ли способ использовать аналогичный способ сделать это в цифрах/форме/ФильтрацияВыбрать? или я должен сделать это, используя javascript, чтобы заполнить его?

Любые советы приветствуются!

Редактировать

название было держать в файле свойств и доступа к ним с помощью:

<fmt:setBundle basename="bundles.customer-resources" /> 

ресурсы расслоением.

Источниками выглядит следующим образом:

storageway.customer.person.title.options=Mr.,Ms.,Mrs.,Dr.,Other 

доступ:

<fmt:message key="storageway.customer.person.title.options" var="title_t" scope="session" /> 

Это простой массив строк вместо ключа: значение карты. Форма пружины может обрабатывать ее правильно, но dijit/form/FilteringSelect нет.

ответ

0

Вы можете создать обычные теги option внутри dijit/form/FilteringSelect. Они будут визуализированы. Таким образом, я уверен, вы можете сделать

<select id="customerentity_customerTitle" name="customerTitle" style="width: 300px;" data-dojo-type="dijit/form/FilteringSelect" 
data-dojo-props="value: '${customerentity.customerTitle}',placeHolder: 'Select Your Title'"> 

    <form:options items="${fn:split(title_t, ',')}" /> 
</select> 

Смотрите фрагмент:

require(["dojo/parser", "dojo/domReady!"], function(parser){ 
 
    parser.parse(); 
 
});
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script> 
 
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/resources/dojo.css"> 
 
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dijit/themes/tundra/tundra.css"> 
 

 
<div class="tundra"> 
 
    
 
    <select id="customerentity_customerTitle" name="customerTitle" style="width: 300px;" data-dojo-type="dijit/form/FilteringSelect" 
 
    data-dojo-props="value: 'b',placeHolder: 'Select Your Title'"> 
 
    
 
    <option value="a">value A</option> 
 
    <option value="b">value B</option> 
 
    <option value="c">value C</option> 
 
    </select> 
 
    
 
</div>

+0

спасибо за ваши советы. Ваше решение не работает для моей ситуации. Элементы select были определены в моем файле свойств, эти элементы не являются форматом карты, но это всего лишь простой массив строк. Доступ к нему может получить только EL. –