如何使用内联编辑从 jqGrid 列中获取 Select 的文本

How to get Select's text from jqGrid column with inline editing

我需要获取 jqGrid 中属于 edittype='select'

的单元格的文本和值

这是我的 colModel

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

我正在使用内联编辑和 free-jqgrid v4.9.0

当我运行var respId = $(gridId).jqGrid('getCell', row_id, "ResponsibleId");

它为我提供了项目的正确价值,但我也需要文本。

谢谢

我建议您直接获取所选选项。您只需要知道 jqGrid 根据规则在可编辑字段上分配 idrowid + "_" + 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><td> 的某些内部 <span> ,其中包含您需要的数据。 $tdData.text() 从单元格中获取文本。如果变量中的列名(例如 colName),则应使用 [colName] 而不是 .ResponsibleId.