我遇到的问题是,当我第一次右键单击网格中的单元格时,不会出现上下文菜单。第二次我右键单击,然后上下文菜单打开我尝试了替代但没有帮助我。
以下是我的代码:
$("#list").jqGrid({
url : '../xyzServlet',
autowidth : true,
altRows : true,
datatype : 'json',
mtype : 'POST',
scrollOffset : 0,
loadui : 'disable',
jsonReader : {
root : "root",
cell : ""
},
colNames : [ 'Name', 'password', 'UserId', 'Username', 'Email ID', 'Home Folder', 'Status'],
colModel : [ {
name : 'Name',
index : 'Name',
align : 'left',
hidden : true
}, {
name : 'password',
index : 'password',
align : 'left',
hidden : true
}, {
name : 'UserId',
index : 'UserId',
align : 'left',
hidden : true
}, {
name : 'User Name',
index : 'User Name',
align : 'left'
}, {
name : 'EmailId',
index : 'EmailId',
align : 'left'
}, {
name : 'Home Folder',
index : 'Home Folder',
align : 'left'
}, {
name : 'UserStatus',
index : 'UserStatus',
align : 'left'
}],
onRightClickRow: function(rowid, rowdata, rowelem) {
$('#' + rowid).contextMenu('MenuJqGrid', eventsMenu);
},
pager : '#pager',
rowNum : 20,
rowList : [ 15, 20, 50 ],
viewrecords : true,
gridview : true,
multiselect : false,
rownumbers : true,
loadonce : true,
})
var eventsMenu = {
bindings: {
'CreateUser': function(t) {
update = false;
formdata = null;
$('#UForm')[0].reset();
$("#EUserForm").dialog("open");
$('#EUserForm').dialog('option', 'title', 'Create User');
$("#mssg").html("Fill up the below details.");
$("#mssg").css('color', 'blue');
$(".error").css("display", "none");
$('#EditUserName,#EditUserUserName').attr('readonly', false);
$('input[name=loginDisabled]').attr("disabled", false);
},
}
};
答案 0 :(得分:1)
您必须使用父div的id,而不是使用
$('#' + rowid).contextMenu('MenuJqGrid', eventsMenu);
例如使用类似于:
$('#center').contextMenu('MenuJqGrid', eventsMenu);