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

时间:2015-07-03 09:49:53

标签: javascript jquery jqgrid free-jqgrid

我需要获取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");

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

感谢

1 个答案:

答案 0 :(得分: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会为您提供<td>的jQuery包装器或<span>的{​​{1}}内容<td>,其中包含您需要的数据。 $tdData.text()从单元格中获取文本。如果变量中包含您的列名称(例如colName中),那么您应该使用[colName]而不是.ResponsibleId