1
我的網格加載後,我將點擊處理程序綁定到包含複選框的列。jqgrid:獲取點擊複選框的行的ID
$("#mygrid td input").each(function() {
$(this).click(function() {
});
});
是否有此單擊處理一個漂亮的方式來獲得什麼對應於該行的複選框中記錄的PK/ID,所以我可以用它調用服務器?
我的網格加載後,我將點擊處理程序綁定到包含複選框的列。jqgrid:獲取點擊複選框的行的ID
$("#mygrid td input").each(function() {
$(this).click(function() {
});
});
是否有此單擊處理一個漂亮的方式來獲得什麼對應於該行的複選框中記錄的PK/ID,所以我可以用它調用服務器?
可以使用eventObject參數jQuery.click事件:
$("#mygrid td input").each(function() {
$(this).click(function (e) {
// e.target point to <input> DOM element
var tr = $(e.target).closest('tr');
alert ("Current rowid=" + tr[0].id);
});
});
你應該只找到相對的jQuery.closest的點擊<input>
元素所屬的<tr>
(錶行)元素。 <tr>
元素的id
是您在填充網格時使用的rowid。
$("#treegrid").jqGrid({
url: '${createLink(controller:"poa", action:"obtEstrucAreasDep")}',
datatype: 'json',
postData: {
gestion: function() { return ${gestion}; }
},
mtype: 'GET',
colNames: ["ID", "Nombre de Area", "Sigla", "Nivel", "Gener.HR", "Recep.HR", "Activo"],
colModel: [
{name:'id', index:'id', width:1, hidden:true, key:true},
{name:'area', index:'area', width:95, hidden:false, sortable:true},
{name:'sigla', index:'sigla', width:25, hidden:false, sortable:false, align:'center'},
{name:'nivel', index:'nivel', width:1, hidden:true, align:'center'},
{name:'genhr', index:'genhr', width:25, align:'center', editable: true, edittype:'checkbox', editoptions:{value:"True:False"}, formatter:"checkbox", formatoptions:{disabled:false}},
{name:'recep', index:'recep', width:25, align:'center', editable: true, edittype:'checkbox', editoptions:{value:"True:False"}, formatter:"checkbox", formatoptions:{disabled:false}},
{name:'activ', index:'activ', width:25, align:'center', editable: true, edittype:'checkbox', editoptions:{value:"True:False"}, formatter:"checkbox", formatoptions:{disabled:false}}
],
treeGridModel: 'adjacency',
height: 'auto',
width: '500', //360
treeGrid: true,
ExpandColumn: 'area',
ExpandColClick: true,
caption: '${titulo}'+' - GESTION '+'${gestion}',
onSelectRow: function(id){operRowJQGrid(id);}
});
這是由JuanFer
jQuery(document).delegate('#treegrid .jqgrow td input', 'click', function(e){
var tr = $(e.target).closest('tr');
var rowid = tr[0].id;
var $myGrid = jQuery('#treegrid');
var i = $.jgrid.getCellIndex($(e.target).closest('td')[0]);
var cm = $myGrid.jqGrid('getGridParam', 'colModel');
var colName = cm[i].name;
var y = $(this).val();
var x = false
if(y=='false'){
$(this).val('true');
}else{
$(this).val('false');
}
x = $(this).val();
alert("check = "+x+", id = "+rowid+", col name = "+colName);
});
只要你是一個生命的救星! –
@Amete:不客氣!答案很古老。今天我會建議最好使用'beforeSelectRow'來檢測網格內部的任何點擊。 'e.target'是被點擊的元素。在單擊複選框的情況下,可以檢測單擊的行和列以及使用'.is(「:checked」)'。來自[答案](http://stackoverflow.com/a/24239416/315935)的示例[演示](http://www.ok-soft-gmbh.com/jqGrid/EditableCheckbox1.htm)演示了我意思。 – Oleg