限制用户选择jqgrid中的下一行

限制用户选择jqgrid中的下一行,jqgrid,Jqgrid,我在我的项目中使用了jqgrid。我有一个要求,当用户选择行并单击内联工具栏控件的编辑按钮,然后修改单元格中的任何数据,而不是单击内联工具栏控件的保存按钮时,用户此时单击(选择)任何其他行。我想显示用户消息,如 要保存/放弃已修改的数据 如果用户单击消息对话框的“保存”按钮,则保存数据,否则将丢弃数据。因此,请让我知道如何实现它。直到用户不单击“保存”或“丢弃”按钮,否则不要选择用户单击的下一行。首先,您应该使用的restoreAfterSelect:false选项inlineNav(如果使用i

我在我的项目中使用了jqgrid。我有一个要求,当用户选择行并单击内联工具栏控件的编辑按钮,然后修改单元格中的任何数据,而不是单击内联工具栏控件的保存按钮时,用户此时单击(选择)任何其他行。我想显示用户消息,如

要保存/放弃已修改的数据


如果用户单击消息对话框的“保存”按钮,则保存数据,否则将丢弃数据。因此,请让我知道如何实现它。直到用户不单击“保存”或“丢弃”按钮,否则不要选择用户单击的下一行。

首先,您应该使用的
restoreAfterSelect:false
选项
inlineNav
(如果使用
inlineNav
)。秒您可以在选择行之前使用
来实现所需的行为,并根据用户的选择调用
saveRow
restoreRow

选择行之前的
的最简单实现可以是:

在选择行之前:函数(rowid){
var$self=$(此),
savedrownfos=$self.jqGrid(“getGridParam”、“savedRow”),
editingRowId=savedRowInfos==null | | savedRowInfos.length<1?
null:savedRowInfos[0]。id;
if(editingRowId!=null&&editingRowId!==rowid){
如果(确认(“是否要保存更改?”){
$self.jqGrid(“saveRow”,editingRowId);
}否则{
$self.jqGrid(“restoreRow”,editingRowId);
}
}
}
我使用了上面的
confirm
方法。您可以在上看到工作代码

或者,可以使用jQueryUIDialog创建异步对话框。然后,选择行之前的
代码可以是以下代码:

在选择行之前:函数(rowid){
var$self=$(此),
savedrownfos=$self.jqGrid(“getGridParam”、“savedRow”),
editingRowId=savedRowInfos==null | | savedRowInfos.length<1?
null:savedRowInfos[0]。id;
if(editingRowId==null | | editingRowId==rowid){
返回true;//允许选择
}
$(“#对话框确认”)。对话框({
可调整大小:false,
高度:“自动”,
宽度:650,
莫代尔:是的,
按钮:{
“保存更改”:函数(){
$(此).dialog(“关闭”);
$self.jqGrid(“saveRow”,editingRowId);
$self.jqGrid(“setSelection”,rowid);
},
“放弃更改”:函数(){
$(此).dialog(“关闭”);
$self.jqGrid(“restoreRow”,editingRowId);
$self.jqGrid(“setSelection”,rowid);
},
“继续编辑”:函数(){
var tr=$self.jqGrid(“getGridRowById”,editingRowId);
$(此).dialog(“关闭”);
setTimeout(函数(){
$(tr).find(“输入,文本区域,选择,按钮,对象,*[tabindex]”)
.filter(“:输入:可见:不(:禁用)”)
.first()
.focus();
}, 50);
}
}
});
返回false;//防止选择
}

相应的演示是。

首先,您应该使用
restoreAfterSelect:false
选项
inlineav
(如果您使用
inlineav
)。秒您可以在选择行之前使用
来实现所需的行为,并根据用户的选择调用
saveRow
restoreRow

选择行之前的
的最简单实现可以是:

在选择行之前:函数(rowid){
var$self=$(此),
savedrownfos=$self.jqGrid(“getGridParam”、“savedRow”),
editingRowId=savedRowInfos==null | | savedRowInfos.length<1?
null:savedRowInfos[0]。id;
if(editingRowId!=null&&editingRowId!==rowid){
如果(确认(“是否要保存更改?”){
$self.jqGrid(“saveRow”,editingRowId);
}否则{
$self.jqGrid(“restoreRow”,editingRowId);
}
}
}
我使用了上面的
confirm
方法。您可以在上看到工作代码

或者,可以使用jQueryUIDialog创建异步对话框。然后,选择行之前的
代码可以是以下代码:

在选择行之前:函数(rowid){
var$self=$(此),
savedrownfos=$self.jqGrid(“getGridParam”、“savedRow”),
editingRowId=savedRowInfos==null | | savedRowInfos.length<1?
null:savedRowInfos[0]。id;
if(editingRowId==null | | editingRowId==rowid){
返回true;//允许选择
}
$(“#对话框确认”)。对话框({
可调整大小:false,
高度:“自动”,
宽度:650,
莫代尔:是的,
按钮:{
“保存更改”:函数(){
$(此).dialog(“关闭”);
$self.jqGrid(“saveRow”,editingRowId);
$self.jqGrid(“setSelection”,rowid);
},
“放弃更改”:函数(){
$(此).dialog(“关闭”);
$self.jqGrid(“restoreRow”,editingRowId);
$self.jqGrid(“setSelection”,rowid);
},
“继续编辑”:函数(){
var tr=$self.jqGrid(“getGridRowById”,editingRowId);
$(此).dialog(“关闭”);
setTimeout(函数(){
$(tr).find(“输入,文本区域,选择,按钮,对象,*[tabindex]”)
.filter(“:输入:可见:不(:禁用)”)
.first()
.focus();
}, 50);
}
}
});
返回false;//防止选择
}

相应的演示是。

您使用(可以使用)哪个版本的jqGrid a