1

私の jqGrid では、インライン編集とフォーム編集の両方を使用しています。

私の列の 1 つはインライン編集で編集可能であってはならないので、colModel で属性 editable を false に設定しましたが、この列はフォーム編集で表示される必要があります (編集時は読み取り専用、追加時は編集可能)。

これが私が試したことです:

colModel:[{name:'bordereau',index:'BORDEREAU',width:60,align:'center',title:false,editable:false,editoptions: { readonly: true },editrules:{required:true},sortable:true,search:true},



function addRowForm(){
    grid.editGridRow("new",{
        width:'auto',
        height:'auto',
        reloadAfterSubmit:true,
        recreateFilter:true,
        beforeInitData: function() {
            grid.jqGrid('setColProp','bordereau',{editable:true});
            grid.jqGrid('setColProp','bordereau',{editoptions: {readonly: false}});
        },
        afterShowForm: function() {
            $("#editmod"+gridId).css("top",Math.round(((hauteurFenetreUtilisable)/2)-($("#editmod"+gridId).height()/2))+"px");
            $("#editmod"+gridId).css("left",Math.round(((largeutFenetreUtilisable)/2)-($("#editmod"+gridId).width()/2))+"px");
            grid.jqGrid('setColProp','bordereau',{editable:false});
            grid.jqGrid('setColProp','bordereau',{editoptions: {readonly: true}});
            $("#TblGrid_listeVar2 tr:visible:odd").addClass("jqgrow ui-row-ltr odd");
        },
        onclickPgButtons : function (which, formid, numeroBordereau) {
        },
        onClose: function() {
        },
        afterComplete: function() {
        }
    }); 
}



function editRowForm(numeroBordereau){
        grid.restoreRow(numeroBordereau);
        resetGridVar();
        grid.editGridRow(numeroBordereau,{
            width:'auto',
            height:'auto',
            reloadAfterSubmit:true,
            recreateFilter:true,
            beforeInitData: function() {
                grid.jqGrid('setColProp','bordereau',{editable:true});
            },
            afterShowForm: function() {
                $("#editmod"+gridId).css("top",Math.round(((hauteurFenetreUtilisable)/2)-($("#editmod"+gridId).height()/2))+"px");
                $("#editmod"+gridId).css("left",Math.round(((largeutFenetreUtilisable)/2)-($("#editmod"+gridId).width()/2))+"px");
                $("#TblGrid_listeVar2 tr:visible:odd").addClass("jqgrow ui-row-ltr odd");
                grid.jqGrid('setColProp','bordereau',{editable:false});
            },
            onclickPgButtons : function (which, formid, numeroBordereau) {
            },
            onClose: function() {
            },
            afterComplete: function() {
            }
        }); 
    }
4

0 に答える 0