Как получить текст Select из столбца jqGrid с помощью встроенного редактирования

Мне нужно получить текст и значение ячейки в jqGrid, которая имеет edittype='select'

Вот моя colModel

{ name: 'ResponsibleId', editable: true, width: 140, sortable: false, formatter: 'select', edittype: 'select', editoptions: { value: ResponsibleList } }

Я использую встроенное редактирование и бесплатную jqgrid v4.9.0

Когда я бегу var respId = $(gridId).jqGrid('getCell', row_id, "ResponsibleId");

Это дает мне правильное значение элемента, но мне также нужен текст.

Благодарность


person A.K    schedule 03.07.2015    source источник


Ответы (1)


Я рекомендую вам получить выбранный вариант напрямую. Вам нужно только знать, что jqGrid присваивает id редактируемым полям на основе правила: rowid + "_" + columnName. Таким образом, код, который вам нужен, будет

var $option = $("#" + $.jgrid.jqID(row_id) + "_ResponsibleId option").filter(":selected");

$option.text() даст вам текст, а $option.val() даст вам значение текущей выбранной опции.

ОБНОВЛЕНИЕ: если вам нужно получить текст ячейки, в которой используется formatter: "select", вы можете сделать, например, следующее:

var $grid = $(gridId),
    $tr = $grid.jqGrid("getGridRowById", row_id),
    iCol = $grid.jqGrid("getGridParam", "iColByName").ResponsibleId, // or [colname]
    $tdData = $.jgrid.getDataFieldOfCell.call($grid[0], $tr, iCol);

alert($tdData.text());

$tdData предоставит вам оболочку jQuery для <td> или некоторого внутреннего <span> из <td>, который содержит необходимые вам данные. $tdData.text() получает текст из ячейки. Если имя столбца у вас есть в переменной (например, в colName), то вы должны использовать [colName] вместо .ResponsibleId.

person Oleg    schedule 03.07.2015
comment
Спасибо за поддержку @Oleg, но это работает, когда строка находится в режиме редактирования. Мне нужен текст, когда строка находится в режиме чтения. - person A.K; 03.07.2015
comment
@Imran: см. ОБНОВЛЕНО часть моего ответа. - person Oleg; 03.07.2015
comment
Работает как шарм. Спасибо! - person A.K; 03.07.2015