Это проблема, когда я определяю ddl (выпадающий список или поле выбора), я не знаю выбранного значения. Когда пользователь редактирует строку, пользователь может выбрать элемент из списка. Но выбранный элемент не установлен. Я хочу установить выбранный элемент, когда пользователь нажимает кнопку для редактирования строки.Не удается получить объект из ячейки в jqGrid (jQuery)
Правильный способ, я думаю, состоит в том, чтобы получить ddl, который был создан при построении jqGrid, и установить выбранное значение.
$("#list").jqGrid({
datatype: 'clientSide',
colNames: ['Edit', 'Delete', 'Save', 'Cancel', 'Location'],
colModel: [
....
....
{ name: 'Location', index: 'Location', width: 90, editable: true, edittype: "select", editoptions: { value: SI:System Integration ; IM:Information Management ; IA:Industrial Automation ; CI:Custom Instrumentation}}]
});
Когда пользователь нажимает на кнопку редактирования я получаю данные из списка DDL
var locationText = $("#list").getRowData(rowNum).Location;
locationText =
<SELECT id=1_Location class=editable><OPTION value="R ">Rochester</OPTION><OPTION selected value="MA ">Massachusetts</OPTION><OPTION value="DL ">Data Librarian</OPTION><OPTION value="Buff ">Buffalo/Niagara Falls</OPTION><OPTION value="Bing ">Binghamton/Owego/Southern Tier</OPTION><OPTION value="Other ">All other locations</OPTION><OPTION value="Alb ">Albany and all points East</OPTION><OPTION value=""></OPTION></SELECT>
Вместо того, чтобы получать данные из ячейки в jqGrid я предпочел бы получить объект дом DDL элемент.
Другая идея, которую я имел, но не думаю, что это правильно, заключается в использовании locationText и использовании этого для создания нового элемента ddl dom.
что-то вроде этого.
var locationTmp2 = document.createElement("select");
locationTmp2.innerHTML = locationText;
or
locationTmp2.text= locationText;
Есть ли простой способ сделать то, что я пытаюсь сделать. Я знаю, что я мог бы создать новый элемент DOM выбора затем добавьте каждый вариант к нему, как этот
//populate and set the selected item for locations.
var locationSelect = document.createElement("select");
var arrayLocations = ('R:Rochester;MA:Massachusetts;DL:Data Librarian;Buff:Buffalo/Niagara Falls;Bing :Binghamton/Owego/Southern Tier;Other:All other locations;Alb:Albany and all points East;').split(";");
for (var i = 0; i < arrayLocations.length - 1; i++) {
var optionItem = document.createElement("option");
optionItem.value = trim(arrayLocations[i].split(":")[0]);
optionItem.text = trim(arrayLocations[i].split(":")[1]);
//check if this should be the selected item.
if (arrayLocations[i].indexOf(rowData.Location) != -1)
optionItem.selected = true;
locationSelect.add(optionItem);
}
но должен быть способ, чтобы захватить весь DOM элемент из jqGrid.
Благодаря
Имеет ли jqGrid встроенные функции редактирования строк? Создает ли это раскрывающийся список для вас, когда пользователь нажимает на редактирование или вам нужно сделать это самостоятельно? –