gpt4 book ai didi

java - 如何使 jquery 行不可编辑并使用 ajax 调用将同一行保存在数据库中?

转载 作者:行者123 更新时间:2023-12-03 10:18:38 26 4
gpt4 key购买 nike

我使用下面的代码使 jqGrid 的内联编辑为 true -

 if (rowid) {
if (rowid !== lastsel) {
$("#prjectForecastData").jqGrid('restoreRow', lastsel);
$("#prjectForecastData").jqGrid('editRow', rowid, true);
lastsel = rowid;
} else {
$("#prjectForecastData").jqGrid('restoreRow', lastsel);
lastsel = "";
}
}

但是在下面的代码中,在保存行时,我想进行 ajax 调用以便将该行保存在数据库中。并且还想让该行不可编辑。目前'clientArray'用于暂时保存浏览器上的值,但之后无法使其不可编辑。

$("#saveForecastEditData").click(function(){
$("#prjectForecastData").jqGrid('saveRow',lastsel, false, 'clientArray');
jQuery('#prjectForecastData').editRow(lastsel,false);
});

那么如何在成功将行保存到数据库后进行ajax调用并使该行不可编辑?

最佳答案

要使行不可编辑,您应该将 not-editable-row 类添加到相应的行。确切的代码可能取决于您使用的 jqGrid 配置。例如,您只需添加行

$("#" + lastsel).addClass("not-editable-row");

在带有 saveRow 的行之后,但本地数据的排序或分页将重新创建网格主体,因此它将删除任何先前设置的网格类或行。为了使信息持久化,您可以将其与主数据一起保存在本地data中。例如,您可以执行以下操作

$("#saveForecastEditData").click(function () {
var $myGrid = $("#prjectForecastData"), rowData;
$myGrid.jqGrid("saveRow", lastsel, { url: "clientArray"});
rowData = $myGrid.jqGrid("getLocalRow", lastsel);
// add new property to the data
rowData.modified = true;
// add the "not-editable-row" immediately
$("#" + lastsel).addClass("not-editable-row");
});

"#prjectForecastData"网格的代码可以使用rowattr:

$("#prjectForecastData").jqGrid({
// ... all your existing parameters here
rowattr: function (rowData) {
if (rowData.modified) {
return {"class": "not-editable-row"};
}
}
});

它将在本地修改的行上恢复类“not-editable-row”

要获取所有修改的行并将其发送到服务器,可以使用以下代码

var data = $("#prjectForecastData").jqGrid("getGridParam", "data");
var modifiedData = $.grep(data, function (item) { return item.modified; } );
$.ajax({
url: "someServerUtl",
type: "POST",
dataType: "json",
data: {
modifications: JSON.stringify(modifiedData)
}
});

$.ajax请求的具体参数取决于获取数据的服务器代码。

这样,您将使用一次 ajax 调用保存所有修改的数据。或者,您可以在 saveRow 调用中使用另一个(基于服务器的)url。在这种情况下,保存的一行数据将按照 the documentation 中描述的格式自动发送到服务器。 .

关于java - 如何使 jquery 行不可编辑并使用 ajax 调用将同一行保存在数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29745630/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com