У меня есть выпадающий список в jqgrid, который работает. Но после сортировки несколько раз данные в раскрывающемся списке превращаются в «неопределенные» значения.
Данные в раскрывающемся списке различны для каждой строки. Он извлекается из списка с разделителями, анализируется и превращается в раскрывающийся список для отображения в этой ячейке. Он проходит через этот код после каждой сортировки. Однако где-то по пути вместо исходных данных, которые попадают в эту ячейку, ячейка все еще содержит выпадающий код. Именно в этот момент создается новый выпадающий список, но все значения там «неопределенные».
Я подозреваю, что мне что-то не хватает по времени событий на странице, но я не уверен, где искать. Или, может быть, есть лучший способ добавить этот выпадающий список. У меня есть полный контроль над тем, как данные отправляются обратно из веб-службы, поэтому я могу изменить их там, если у кого-то есть идеи.
Вот пример кода в моем событии gridComplete:
var ids = jQuery("#listInbox").jqGrid('getDataIDs');
for(var i=0;i < ids.length;i++){
var acnid = ids[i];
// insert drop down for the trending results option
var trendSelect = "<select style=\"width: 195px;\" class=\"trendSelect\"><option value=''>Select Test</option>";
// testid`testname^testid`testname
var trendItems = $('#listInbox').jqGrid('getCell',ids[i],'trending').split('^');
var patName = $('#listInbox').jqGrid('getCell',ids[i],'patname');
// for each trendItem, create an option for the select drop down
for (var t=0; t < trendItems.length; t++) {
var trendPieces = trendItems[t].split('`');
trendSelect += "<option value='" + acnid + "^" + patName + "^" + trendPieces[0] + "^" + trendPieces[1] + "'>" + trendPieces[1] + "</option>";
}
trendSelect += "</select>";
// insert dropdown in cell for this row
$("#listInbox").jqGrid('setRowData',ids[i],{trending:trendSelect});
}
}