0
我已經爲jqGrid的子網格的每一行添加了一個按鈕。我只是遵循inline_editing的文檔。onclick事件不會觸發添加到jqGrid的每個子網格單元的按鈕
我想單擊按鈕調用服務器端代碼。但是當我看到firebug時,它顯示沒有請求(沒有顯示任何url請求)點擊按鈕。
下面是我的代碼,
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"
});
我失去了一些東西在這裏?
感謝
感謝您的回覆。是的,我使用自定義格式化程序添加了該按鈕。您確實無需在發生事件冒泡時寫入點擊,但我不希望回調函數中的代碼始終發生。它只應發生在按鈕單擊事件上。當然,我已經寫了回調onCellSelect,但事件冒泡反正沒有發生(我不知道爲什麼?)。那麼如何獲得按鈕點擊事件中的rowid? – poddroid
@poddroid:你想要綁定網格體的所有按鈕的'click'事件,你可以使用'$(this).find(「input」)。click(yourEventHandler);'loadComplete'或' gridComplete'。如果在網格和nee中只有很多其他按鈕只綁定特定的按鈕,請參見[這裏](http://stackoverflow.com/a/9153396/315935)和[這裏](http://stackoverflow.com/a/ 9085974/315935)如何找到特殊按鈕。我還建議你另外閱讀關於'onCellSelect'的使用[答案](http://stackoverflow.com/a/5305904/315935)。 – Oleg