Javascript jqGrid modal edit是否仅保存更改的数据和标记的已编辑行?
我使用Oleg提供的jqGrid 4.9.3-pre-free jqGrid。我使用模型窗口“表单编辑”编辑数据。数据从服务器获取。 数据类型:“json”带loadonce:false,数据分页不使用 我用标准的桌子。只需在BlClickRow上调用“表单编辑”Javascript jqGrid modal edit是否仅保存更改的数据和标记的已编辑行?,javascript,jqgrid,free-jqgrid,Javascript,Jqgrid,Free Jqgrid,我使用Oleg提供的jqGrid 4.9.3-pre-free jqGrid。我使用模型窗口“表单编辑”编辑数据。数据从服务器获取。 数据类型:“json”带loadonce:false,数据分页不使用 我用标准的桌子。只需在BlClickRow上调用“表单编辑” ondblClickRow: function(rowid) { $(this).jqGrid('setSelection', rowid) .jqGrid("editGridRow", rowid,
ondblClickRow: function(rowid) {
$(this).jqGrid('setSelection', rowid)
.jqGrid("editGridRow", rowid, {
recreateForm: true,
width: 1000,
height: "auto"});
}
两个问题:
我发现你的问题很有趣,所以我创建了一个,它演示了表单编辑的编辑字段的可能实现之一。结果如下图所示 相应的代码在
beforeShowForm
回调中:
beforeShowForm: function ($form) {
var $self = $(this),
myMarker = "<span class='mychanged-item fa fa-lg fa-arrow-circle-o-left' style='display:none;border-radius:6px;background-color:LightGreen;'></span>";
$form.find(".FormElement").focusout(function () {
var colName = $(this).attr("name"),
rowid = $form.find("input[name='" + $self[0].id + "_id" + "']")
.val(),
oldValue = $self.jqGrid("getCell", rowid, colName),
$myMarker = $(this).closest("td")
.next("td")
.find("span.mychanged-item");
if ($(this).val() !== oldValue) {
$myMarker.css("display", ""); // show
} else {
$myMarker.css("display", "none"); // hide
}
}).each(function () {
$(this).closest("td")
.after("<td style='width:15px'>" + myMarker + "</td>");
});
}
beforeShowForm:函数($form){
var$self=$(此),
myMarker=“”;
$form.find(“.FormElement”).focusout(函数(){
var colName=$(this.attr(“name”),
rowid=$form.find(“输入[name=”+$self[0].id+“_id”+“]”)
.val(),
oldValue=$self.jqGrid(“getCell”、rowid、colName),
$myMarker=$(this).closest(“td”)
.下一步(“td”)
.find(“span.mychanged item”);
if($(this).val()!==oldValue){
$myMarker.css(“显示”、“显示”);//显示
}否则{
$myMarker.css(“显示”、“无”);//隐藏
}
}).每个(功能){
$(此)。最近的(“td”)
。在(“+myMarker+”)之后;
});
}
我发现您的问题很有趣,因此我创建了一个,它演示了表单编辑的编辑字段的可能实现之一。结果如下图所示
相应的代码在beforeShowForm
回调中:
beforeShowForm: function ($form) {
var $self = $(this),
myMarker = "<span class='mychanged-item fa fa-lg fa-arrow-circle-o-left' style='display:none;border-radius:6px;background-color:LightGreen;'></span>";
$form.find(".FormElement").focusout(function () {
var colName = $(this).attr("name"),
rowid = $form.find("input[name='" + $self[0].id + "_id" + "']")
.val(),
oldValue = $self.jqGrid("getCell", rowid, colName),
$myMarker = $(this).closest("td")
.next("td")
.find("span.mychanged-item");
if ($(this).val() !== oldValue) {
$myMarker.css("display", ""); // show
} else {
$myMarker.css("display", "none"); // hide
}
}).each(function () {
$(this).closest("td")
.after("<td style='width:15px'>" + myMarker + "</td>");
});
}
beforeShowForm:函数($form){
var$self=$(此),
myMarker=“”;
$form.find(“.FormElement”).focusout(函数(){
var colName=$(this.attr(“name”),
rowid=$form.find(“输入[name=”+$self[0].id+“_id”+“]”)
.val(),
oldValue=$self.jqGrid(“getCell”、rowid、colName),
$myMarker=$(this).closest(“td”)
.下一步(“td”)
.find(“span.mychanged item”);
if($(this).val()!==oldValue){
$myMarker.css(“显示”、“显示”);//显示
}否则{
$myMarker.css(“显示”、“无”);//隐藏
}
}).每个(功能){
$(此)。最近的(“td”)
。在(“+myMarker+”)之后;
});
}
对不起,我不明白你的意思。你在“划船”下面是什么意思?选择行?在编辑过程中,默认情况下会选中它。一般来说,有很多选项可以开始表单编辑:navGrid
,格式化程序:“操作”
,直接调用ondblClickRow
内部的editGridRow
,或onsetrow
,。。。可以使用不同的选择或多选选项。例如singleSelectClickMode:“selectonly”
可能会有所帮助。下一个问题:你写的是“保存”按钮。哪一个(来自navGrid
,formatter:“操作”
,您的自定义按钮,…)。您如何使用jqGrid(datatype:“本地”
,datatype:“json”
和loadonce:true
,…)?您是否使用数据的本地分页?没有实现“修改的数据”的标准方法,尤其是对于表单编辑和多页面。为什么要在本地编辑多行?它在错误处理方面有很多缺点,我个人只使用单独保存每一行。数据类型:“json”和loadonce:false,数据分页不使用是否要编辑多行,或者如果写入行,则表示编辑行的字段:列中的值?请插入更多代码。您可以在每个可编辑字段上注册onfocus事件,并在该字段上设置CSS,例如在编辑之后。您可以将每行的内容与原始内容和设置的类进行比较。编辑行后,如果数据已被修改,请进行标记抱歉,但我不明白您的意思。你在“划船”下面是什么意思?选择行?在编辑过程中,默认情况下会选中它。一般来说,有很多选项可以开始表单编辑:navGrid
,格式化程序:“操作”
,直接调用ondblClickRow
内部的editGridRow
,或onsetrow
,。。。可以使用不同的选择或多选选项。例如singleSelectClickMode:“selectonly”
可能会有所帮助。下一个问题:你写的是“保存”按钮。哪一个(来自navGrid
,formatter:“操作”
,您的自定义按钮,…)。您如何使用jqGrid(datatype:“本地”
,datatype:“json”
和loadonce:true
,…)?您是否使用数据的本地分页?没有实现“修改的数据”的标准方法,尤其是对于表单编辑和多页面。为什么要在本地编辑多行?它在错误处理方面有很多缺点,我个人只使用单独保存每一行。数据类型:“json”和loadonce:false,数据分页不使用是否要编辑多行,或者如果写入行,则表示编辑行的字段:列中的值?请插入更多代码。您可以在每个可编辑字段上注册onfocus事件,并在该字段上设置CSS,例如在编辑之后。您可以将每一行的内容与原始内容和设置的类进行比较。编辑行后,如果数据已被修改,则进行标记。请查看续行。请查看续行