выбран набор опций jqgrid select box

#jquery #jqgrid

#jquery #jqgrid

Вопрос:

я использую jqgrid и добавляю строку, содержащую поля: textbox и selectbox.

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

Это код, показывающий данные столбцов:

 colModel:[                          
{name:'user_id',index:'user_id',  width:150,align:"center",editable:false,editoptions:{readonly:true,size:10}},      
{name:'user_name',index:'user_name', width:250, align:"left",editable:true,editoptions:{size:30}},
{name: 'Age', width: 40, editable: true, formatter: 'select',
edittype: 'select', editoptions: { value: age_list },   
hidden: true, editrules: { edithidden: true }}
]
  

где ‘age_list’ — это массив значений возраста в виде массива javascript.

Комментарии:

1. jqGrid действительно автоматически помечает выбранное значение по умолчанию во всех моих тестах как при встроенном редактировании, так и при редактировании формы. Вам следует опубликовать больше кода, который вы используете, потому что проблема, несомненно, находится за пределами опубликованного кода. Например, который age_list вы используете? в каком формате содержится столбец ‘Age’? Как вы заполняете сетку?

Ответ №1:

Используйте edittype: 'custom' для своего столбца, а затем вы можете создать свой собственный HTML-код для элемента управления:

 <script>
jQuery("#grid_id").jqGrid({
...
   colModel: [ 
      ... 
      {name:'price', ..., editable:true, edittype:'custom', editoptions:{custom_element: functionThatReturnsHtmlElement, custom_value: functionThatReturnsTheValueYouNeed} },
      ...
   ]
...
});
</script>
  

Более подробная информация в вики-документации jqGrid:http://www.trirand.com/jqgridwiki/doku.php?id=wiki:common_rules#editable

Комментарии:

1. Я не смог найти способ установить значение по умолчанию, как вы сказали выше: <опция … выбрано> отображать</option> . Я пробовал с помощью: editoptions: { значение: age_list, значение по умолчанию: «2»} но это не сработало. Я вижу, что первый вариант в выпадающем списке выбирается по умолчанию.

2. Я отредактирую, чтобы было более понятно. Вы должны использовать custom edittype, вы пока этого не делаете.

3. что означают значения custom_element и custom_value?

4. Для получения всех подробностей об этом, пожалуйста, перейдите по ссылке на документацию jqGrid и посмотрите раздел edittittype -> пользовательский. Их пример предназначен для создания элемента «input», но вы можете легко настроить его для создания элемента «select». Я бы ответил вам напрямую, но я бы просто скопировал их документацию.

5. Кстати, я просмотрел исходный код этой демонстрационной страницы: ok-soft-gmbh.com/jqGrid/DependendSelects2.htm и я мог бы получить чистое решение моей проблемы. Именно то, что я хотел в сценарии редактирования. Все еще принимаю ваше решение 🙂