我在jqGrid的子网格的每一行都添加了一个按钮。我只是遵循了inline_editing的文档。
我想点击按钮调用服务器端代码。但是当我看到萤火虫时,它没有显示点击按钮时发出的请求(没有显示任何网址请求)。
以下是我的代码,
subGridRowExpanded: function (subgrid_id, row_id) {
var subgrid_table_id, pager_id;
subgrid_table_id = subgrid_id + "_t";
pager_id = "p_" + subgrid_table_id;
$("#" + subgrid_id)
.html("<table id='" + subgrid_table_id + "' class='scroll'></table><div id='" + pager_id + "' class='scroll'></div>");
$mysubgrid = jQuery("#" + subgrid_table_id);
$mysubgrid.jqGrid({
url: "serversub.php",
datatype: "json",
colNames: ['Product Id', 'Product Name', 'status', ''],
width: 700,
colModel: [{
name: 'productid',
index: 'productid',
width: 55
}, {
name: 'productname',
index: 'productname',
width: 90
}, {
name: 'status',
index: 'status',
width: 80,
search: false
}, {
name: 'link',
index: 'link',
width: 80,
search: false
}],
rowNum: 20,
sortname: 'num',
sortorder: "asc",
gridComplete: function () {
var ids = $mysubgrid.jqGrid('getDataIDs');
for (var i = 0; i < ids.length; i++) {
var cl = ids[i];
se = "<input style='height:22px;width:20px;'
type='button' value='Update' onclick=\"$mysubgrid.saveRow('" + cl + "');\" />";
$mysubgrid.jqGrid('setRowData', ids[i], {
link: se
});
}
},
editurl: "saveserversub.php"
});
我在这里错过了什么吗?
由于
答案 0 :(得分:0)
您在onclick
中调用的功能仅包含全局变量。您无法使用本地$mysubgrid
变量。
我建议您在custom formatter内创建所需的按钮,并使用(与所有其他网格一样)选项gridview: true
。它将提高网格的性能。
此外,我认为您不需要在网格列中插入的按钮上设置任何onclick
。如果click
事件触发,并且click
bubbling没有事件处理程序。所以你可以使用onCellSelect
回调。如果您需要拥有所单击按钮的原始DOM对象,则可以在e.target
中找到它。