gpt4 book ai didi

javascript - JQGrid POST 列的值而不是 ID

转载 作者:行者123 更新时间:2023-12-02 14:49:09 28 4
gpt4 key购买 nike

我正在尝试编辑一条记录,但它没有发送 ID 列的值,而是不断发送表的 ID,这是我不关心的。代码如下:

$("#list1").jqGrid({
datatype: 'clientSide',
colNames: ["Id", "Id prodotto", "Nome prodotto", "Quantità",
"Pista", "Politica", "Attivazione", "Bundle",
"Scontato", "Valore sconto", "Twin card", "DN",
"ISDN", "Disabilitato"],
colModel: [
{ name: "id", hidden:true, key:true},
{ name: "idprodotto", hidden:true},
{ name: "prodotto"},
{ name: "quantita"},
{ name: "pista"},
{ name: "politica"},
{ name: "attivazione", formatter: "checkbox"},
{ name: "bundle", formatter: "checkbox"},
{ name: "sconti", formatter: "checkbox"},
{ name: "scontival"},
{ name: "card", formatter: "checkbox"},
{ name: "numero"},
{ name: "isdn", formatter: "checkbox"},
{ name: "disabilitato", width:100, sortable: false, resizable:false, hidden:true }
],
sortname: "prodotto",
sortorder: "asc",
pager: "#pager1"
})
.navGrid('#pager1', {add: false, del: false});

可以这样说,在这个页面中有两个表,这是第一个:

$("#list").jqGrid({
datatype: 'clientSide',
colNames: [
"Id",
// "Id cliente",
"Numero", "RagSociale cliente", "Anno",
"Data di ordine", "Id agente", "Nome agente", "Cognome agente",
"Id agenzia", "RagSociale agenzia", "Id utente", "Nome utente",
"Data d'inserimento", "Note", "Disabilitato",""],
colModel: [
{ name: "id", hidden:true, key:true },
// { name: "idCliente"},
{ name: "numero"},
{ name: "ragSocCliente"},
{ name: "anno"},
{ name: "dataOrdine"},
{ name: "idAgente"},
{ name: "nomeAgente"},
{ name: "cognomeAgente"},
{ name: "idAgenzia"},
{ name: "ragSocAgenzia"},
{ name: "idUser"},
{ name: "nomeUser"},
{ name: "dataInserimento"},
{ name: "note"},
{ name: "disabilitato", width:100, sortable: false, resizable:false, hidden: true},
{ name: "dataModifica", width:100, hidden: false}
],

sortname: "dataModifica",
sortorder: "desc",
pager: "#pager",
onSelectRow: function (id) {
sessionStorage.setItem("idEdit", $("#list").jqGrid('getCell', id, 'id'));
$.get("getCorpoByNumero.do", {
id: sessionStorage.getItem("idEdit")
}, function (data) {
$("#list1").clearGridData();
for (var i = 0; i < data.length; i++) {
var corpo = data[i];
$("#list1").addRowData((i+1), corpo);

}
});

}
})

最佳答案

不清楚您想要 POST 哪个“列的值”而不是 ID?哪个网格有问题?您使用navGrid对于网格#list1 没有指定和editurl这看起来不正确。

使用 addRowData 填充第二个网格很糟糕!特别糟糕的是使用值 0 , .. data.length作为 rowids 而不是从服务器返回的 ids (来自 "getCorpoByNumero.do" )。改一下data就有效多了网格参数并通过 .trigger("reloadGrid") 重新加载它:

onSelectRow: function (id) {                    
sessionStorage.setItem("idEdit", id);
$.get("getCorpoByNumero.do", {
id: id
}, function (data) {
var $grid1 = $("#list1"), p = $grid1.jqGrid("getGridParam");

p.data = data;
$grid1.trigger("reloadGrid");
});
}

此外,idPrefix 的用法如果您在页面上创建多个网格作为一个网格,则强烈建议使用此选项。 jqGrid 的标准行为是设置 id所有的属性<tr>网格的元素(将 rowid 设置为 id 的值)输入数据的属性。如果两个网格具有相同的 id,它可能会产生 id 重复项值(value)。 idPrefix: "g1_"的用法例如在#list1中网格将强制添加"g1_"所有前缀 id网格的值。它修复了可能的 id 重复项。向服务器发送数据时会自动去除前缀。

最后一句话。我建议您删除不需要的 { name: "id", hidden:true, key:true }网格中的列。 rowid 将使用 id自动输入数据的属性。而不是$("#list").jqGrid('getCell', id, 'id')你可以只使用 idonSelectRow回调并具有相同的数据。以同样的方式,您可以删除其他隐藏列( disabilitatoidprodotto )。内部数据仍将具有所有输入属性,您可以使用 getLocalRow访问数据。

我建议替换datatype: 'clientSide'更常见datatype: 'local'并验证您使用的 jqGrid 版本。我建议您使用free jqGrid的最新版本(4.13.1) 。这是我开发的jqGrid的for。

关于javascript - JQGrid POST 列的值而不是 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36330622/

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