2013-06-24 4 views
0

Я использую jqGrid 4.5.2 & Я использую настраиваемый форматировщик для создания выпадающего окна в ячейке в строке jqGrid на основе значений из других (скрытых) ячеек.jQuery jqGrid - выберите поле в строке сетки

Выпадающие окна выбираются из результатов запроса в таблицу SQL. Кроме того, я также добавляю строку к нему в качестве учебного сообщения. Выпадающий будет построен следующим образом:

function getMsgs() { 
    $.ajax({ 
     type: "GET", 
     url: myUrl, 
     dataType: "xml", 
     success: function(data) { 
       var select = $("#msglist"); 
       var selectline = $("<option value='0'>Select Message</option>"); 
        select.prepend(selectline); 
        $(data).find("Row").each(function() { 
       var ctid = $(this).find("CannedTextID").text(); 
       var dtext = $(this).find("DisplayText").text(); 
       var option = $("<option>" + dtext + "</option>"); 
       option.prop("value", ctid); 
        select.append(option); 
       }); 
     // make the instructional message unselectable 
     $("#msglist option[value='0']").attr("disabled", "disabled"); 
     } 
    }); 

    msgSelect = $("#msglist").select(); 
} 

Результаты помещаются в форму на странице & HTML, выглядит следующим образом:

<form class="Messages" action=""> 
<select id="msglist" class="choices" name="msglist"> 
<option value="0" disabled="disabled">Select Message</option> 
<option value="7"> Message2</option> 
<option value="8"> Message3</option> 
<option value="9"> Message4</option> 
<option value="10"> Message5</option> 
<option value="11"> Message6</option> 
<option value="12"> Message7</option> 
<option value="13">Intermittent problems</option> 
<option value="14">Local Network Connectivity issue</option> 
<option value="15">Message15</option> 
</select> 
</form> 

В конце функции, я поставил глобальную переменную msgSelect = $("#msglist").select();

в форматере, на условиях, отвечающих требованиям, где выпадающий должен быть, я вернусь:

return msgSelect[0].outerHTML;

Это отображает выпадающий список в jqGrid, но вместо того, чтобы показывать первую строку = Select Message, как это делает начальный раскрывающийся список, вместо этого отображается Message2. В строке jqGrid параметр Select Message неактивен & не может быть выбран, но выпадающее меню по умолчанию относится ко второй строке. select идентичен HTML в раскрывающемся списке, который я помещал в другое место на странице (т. Е. Select Message отключен и не установлен по умолчанию в любом месте).

Почему пользовательский форматировщик jqGrid отображает HTML по-разному, даже если код точно такой же?

ответ

0

Ничего. Проблема заключалась в использовании IE против Firefox. IE по умолчанию выбирал его, тогда как мне нужно было установить атрибут selected, если бы я хотел, чтобы Firefox делал то же самое.

Я не заметил, что в исходном раскрывающемся списке был Select Message в черном (Firefox) в списке и серый в раскрывающемся списке, в то время как в IE оба из них были серыми.