我的JQGrid就像,
colNames: ['Job ID', 'MailId','Save'],
colModel: [
{ name: 'JobId', index: 'JobId', width: 120, align: 'left', editable: true },
{ name: 'MailId', index: 'MailId', width: 150, align: 'left', editable: true },
{
name: 'Save', index: 'Save', width: 100, sortable: false,
formatter: function (cellvalue, options, rowObject) {
return "<a href='#' id="saveLinkId">Save</a>";
}
}
我在JQGrid单元格的末尾创建了“保存链接”按钮。
点击链接按钮后,我需要将点击的行 JobId和MailID传递给jquery函数。如何做?
答案 0 :(得分:1)
在上面给出的示例中,formatter函数中的rowObject参数将保存该行中的所有值。因此,可以为您的JobId使用 rowObject.JobId ,为您的MailId使用 rowObject.MailId 。
答案 1 :(得分:0)
我建议您使用beforeSelectRow
(或onCellSelect
)来检测<a>
列中的"Save"
点击。 The answer解释了你能做些什么。另一个答案:this one和this one对你来说也很有趣。
在您的情况下,beforeSelectRow
可能如下所示
beforeSelectRow: function (rowid, e) {
var $self = $(this),
iCol = $.jgrid.getCellIndex($(e.target).closest("td")[0]),
cm = $self.jqGrid("getGridParam", "colModel");
if (cm[iCol].name !== "Save") {
return true;
}
alert ($self.jqGrid("getCell", rowid, "JobId"));
return false;
}
此外,您应该考虑在输入数据中使用哪个值id
。值构建因此命名为rowid - id
元素的<tr>
属性值(网格的行)。例如,如果JobId
或MailId
(两列中的一个)包含每行的唯一值,则可以使用列中的值作为rowid。为此,您只需将key: true
添加到相应的列即可。