Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Struts2 jquery grid gridColumn字段显示在对话框中,尽管使用hidedlg=";“真的”;_Jquery_Jqgrid_Struts2 - Fatal编程技术网

Struts2 jquery grid gridColumn字段显示在对话框中,尽管使用hidedlg=";“真的”;

Struts2 jquery grid gridColumn字段显示在对话框中,尽管使用hidedlg=";“真的”;,jquery,jqgrid,struts2,Jquery,Jqgrid,Struts2,我不想编辑字段,我不想在编辑对话框中显示它,但我想将它传递给操作。我的理解是,我应该使用上面指定的editable=“true”、hidedlg=“true”、editrules=“{edithidden:false}”。但该字段在对话框中仍然可见且可编辑。。。有人知道这个代码有什么问题吗?谢谢我想你有两个选择。我个人通过定义自己的自定义编辑选项来处理这个需求 例: 另一个选项是定义自己的编辑表单处理程序并传入额外的行项目值: ... editable: true, editt

我不想编辑字段,我不想在编辑对话框中显示它,但我想将它传递给操作。我的理解是,我应该使用上面指定的editable=“true”、hidedlg=“true”、editrules=“{edithidden:false}”。但该字段在对话框中仍然可见且可编辑。。。有人知道这个代码有什么问题吗?谢谢

我想你有两个选择。我个人通过定义自己的自定义编辑选项来处理这个需求

例:

另一个选项是定义自己的编辑表单处理程序并传入额外的行项目值:

    ... 
    editable: true, edittype: 'custom', editoptions: { custom_element: readOnlyTextBox, custom_value: readOnlyTextBoxValue } 
    ...

function readOnlyTextBox(value, options) {

    var el = document.createElement("input");
    el.type = "text";
    el.value = value;
    el.disabled = true; // "disabled";
    return el;
} //function readOnlyTextBox(value, options) {

function readOnlyTextBoxValue(elem, operation, value) {
    //console.log('Elem: ' + elem + '  Operation: ' + operation + '  Passed Value: ' + value + '  Value: ' + $(elem).val());        
    if (operation === 'get') {
        return $(elem).val();
    } else if (operation === 'set') {
        $(elem).val(value);
    }
} //function readOnlyTextBoxValue(elem, operation, value) {
我在
的属性列表中没有看到
hidden=“true”
。此外,您使用
editrules=“{edithidden:false}”
而不是
editrules=“{edithidden:true}”
。也许这就是问题所在

换句话说,您需要具有列属性

        ....
        ondblClickRow: function (rowid) {
            EditCollectionItem(rowid, this)
        }, //ondblClickRow
        ....

function EditCollectionItem (rowid, grid){

    $(grid).jqGrid('editGridRow', rowid,
    {
        viewPagerButtons: false,
        editData: { ExtraDataKey: ExtraDataValue },
        afterShowForm: function (formid) {
        }, //afterShowForm
        afterComplete: function (response) {
        } //afterComplete
    }); //$this.jqGrid('editGridRow
}//function EditCollectionItem (rowid, grid){

如中所述。

如果使用了
隐藏:true
设置,它不是传递给控制器吗?如果组合了所述设置,它将被发送到服务器。除了
hidden:true
属性外,您已经使用了所有正确的选项。因此
editable:false
edithidden:true
的组合仍然不会显示该值并将该值传输到服务器?(您不希望显示该值,但希望将其传输到服务器,例如PK值)@Mark:我引用的答案包含
hidden:true,editable:true,editrules:{edithidden:true},hiddedLG:true
。我又修改了一次我的答案<代码>隐藏:true表示-不在网格中显示列
hidedlg:true
表示不显示在
columnCooser
中<代码>可编辑:true表示在编辑/添加表单中包含列中的值,并稍后将数据发送到服务器。如果仅当另外设置了
editrules:{edithidden:true}
时才会将隐藏数据添加到表单中。好的,很抱歉占用您的时间,我只是想澄清一下,我要求在编辑表单(产品名称)中显示信息,但不允许对其进行编辑,这是我下面回答的顶部部分,有没有更好的办法呢?你应该在下面选择一个答案。
        ....
        ondblClickRow: function (rowid) {
            EditCollectionItem(rowid, this)
        }, //ondblClickRow
        ....

function EditCollectionItem (rowid, grid){

    $(grid).jqGrid('editGridRow', rowid,
    {
        viewPagerButtons: false,
        editData: { ExtraDataKey: ExtraDataValue },
        afterShowForm: function (formid) {
        }, //afterShowForm
        afterComplete: function (response) {
        } //afterComplete
    }); //$this.jqGrid('editGridRow
}//function EditCollectionItem (rowid, grid){
hidden: true, editable: true, editrules: { edithidden: true }, hidedlg: true