在jqgrid中发布不可编辑的值

在jqgrid中发布不可编辑的值,jqgrid,Jqgrid,我使用的是jqgrid 3.8.2,网格中有许多列是不可编辑的,但仍然希望发布到服务器。我怎么能做到?(如果我将editable设置为false,则该字段不会发布到服务器上)在我看来,列设置 hidden: true, editable: true, editrules: { edithidden: false } 我会做你需要的。我意识到这个问题现在已经很老了,但我今天需要做同样的事情,而被接受的答案实际上并没有回答这个问题。对不起,奥列格,你仍然很棒。无论如何,如果您有可见的列,并且正在进

我使用的是jqgrid 3.8.2,网格中有许多列是不可编辑的,但仍然希望发布到服务器。我怎么能做到?(如果我将editable设置为false,则该字段不会发布到服务器上)

在我看来,列设置

hidden: true, editable: true, editrules: { edithidden: false }

我会做你需要的。

我意识到这个问题现在已经很老了,但我今天需要做同样的事情,而被接受的答案实际上并没有回答这个问题。对不起,奥列格,你仍然很棒。无论如何,如果您有可见的列,并且正在进行内联编辑,其中一些列不应该是可编辑的,那么下面的内容对我很有用

使用这些列设置

editable: true, edittype: 'custom', editoptions: { custom_element: readOnlyElement, custom_value: readOnlyValue}
并定义这些函数

function readOnlyElement(value, options) {
    return $('<span></span>', { text: value });
},

function readOnlyValue(elem, operation, value) {
    if (operation === 'get') {
        return $(elem).text();
    } else if (operation === 'set') {
        $('span', elem).text(value);
    }
}
函数readOnlyElement(值、选项){
返回$('',{text:value});
},
函数只读值(元素、操作、值){
如果(操作=='get'){
返回$(elem.text();
}else if(操作=='set'){
$('span',elem).text(值);
}
}

我在@Sing3对Oleg答案的评论中看到了答案。 设定

关于“可编辑:“隐藏”…
在更改单元格内容之前,此方法是完美的。使用“editable:“hidden”,jqgrid不包含
,而是包含
描述的aria,该aria不太容易定位。
例:

不带“可编辑:”隐藏“
通过输入的“id”==>“
$(“#yourgrid#jqg3_your_字段”)将输入作为目标。

有了“editable:“hidden”,你就可以像那样瞄准目标了。。。 您需要您当前的行id

rowID = $("#yourgrid").jqGrid('getGridParam', 'selrow');

$("tr[id='"+rowID+"'] [aria-describedby='yourgrid_your_field']>.u-jqgrid-cell-wrapper").html()
它不太方便:-)

尽管如此,它工作得非常好;-)

但柱不会隐藏在网格中。例如,对于创建的列,用户无法编辑该列,但仍必须将其发布到服务器。@Vijaya Anand:您不发布任何代码,因此通信时间可能更长。jqGrid支持三种标准编辑模式:内联编辑、表单编辑和单元格编辑。您的问题的答案取决于您使用的模式。@Vijaya Anand:如果您有兴趣解决此问题,您应该发布您使用的JavaScript代码。@Oleg应添加editnochange等属性,以指定将值作为不可编辑字段传递,但仍将其发送到服务器。这样可以避免像汤姆那样的小麻烦answer@singe3:我刚刚发布到GitHub。因此,可以对任何列使用
editable:“hidden”
将数据发送到服务器,而无需对该列进行编辑或隐藏。如果您现在还使用,那么您可以通过将URL更改为中所述的值来尝试。再次感谢你的建议。我花了两个小时寻找一个干净的方法来做到这一点!非常感谢。
rowID = $("#yourgrid").jqGrid('getGridParam', 'selrow');

$("tr[id='"+rowID+"'] [aria-describedby='yourgrid_your_field']>.u-jqgrid-cell-wrapper").html()