【发布时间】:2016-07-16 10:03:04
【问题描述】:
我的页面上有多个jqGrids。这些是动态创建的。我想从行单击中获取网格的标题。我看到setCaption 方法但没有getCaption。所以想知道是否有一种获得这个值的好方法?
我在 SO 或外部没有找到任何有用的链接。感谢任何帮助。
更新:
@Oleg 的解决方案帮助我解决了这个问题,他对如何找到网格 id 的评论让我重新思考了我的问题并得到了解决方案:
zLoadLabResult() 动态生成网格。当用户点击复选框时,我想知道我正在构建的其他一些逻辑的网格标题。
function zLoadLabResults(fulldata) {
fulldata = $.parseJSON(fulldata);
$.each(fulldata, function (i, item) {
var data = item.resultData;
var colNames = item.colNames;
var colModelsArray = [];
for (var i = 0; i < colNames.length; i++) {
var str;
if (i === 0) {
str = {
name: 'id',
width: 25,
editoptions: { value: "True:False" },
editrules: { required: true },
edittype: 'checkbox',
formatter: zCheckboxFormatter,
formatoptions: { disabled: false },
editable: true,
sortable: false
};
} else {
str = {
name: colNames[i],
index: colNames[i],
width: '100px'
};
}
colModelsArray.push(str);
}
var gridName = "grid-" + item.testName;
$("#gridcontainer").append("<table id='grid-" + item.testName + "' class='grid'></table>");
$("#" + gridName).jqGrid({
//url: "user.json",
//datatype: "json",
datatype: "local",
colNames: colNames,
colModel: colModelsArray,
height: "auto",
width: "auto",
caption: item.testName
});
var names = colNames;
var mydata = [];
for (var i = 0; i < data.length; i++) {
mydata[i] = {};
for (var j = 0; j < data[i].length; j++) {
mydata[i][names[j]] = data[i][j];
}
}
for (var i = 0; i <= mydata.length; i++) {
$("#" + gridName).jqGrid('addRowData', i + 1, mydata[i]);
}
for (var i = 0; i <= colNames.length; i++) {
$("#" + gridName).jqGrid("setLabel", colNames[i], "", { "text-align": "left" });
}
});
};
function zCheckboxFormatter(cellvalue, options, rowObject) {
return '<input type="checkbox" class="selectedId" name="Id-' + cellvalue + '">';
};
我通过添加 Oleg 的解决方案将以下事件与复选框挂钩:
$('table[id^="grid-"]').on("click", "td > input", function (e) {
var grid = "#" + $(e.target).closest("table").attr("id");
var caption = $(grid).jqGrid("getGridParam", "caption");
var checked = $(e.target).is(":checked")
var rowId = $(e.target).closest("tr").attr("id")
rowData = $(grid).getRowData(rowId);
});
【问题讨论】:
标签: javascript jquery jqgrid