jqGrid单元格编辑将单元格动态设置为只读

时间:2014-02-07 14:26:00

标签: jqgrid

我正在使用celledit。我有一个editype textarea专栏。 我想基于同一行中的另一个单元格值动态地读取textarea。

如何将特定细胞设置为只读?是否有类似“.addClass('not-editable-cell')”的类似内容?

提前感谢您的帮助。

更新: 我刚刚找到了办法。

In the formatcell Event:
if (iRow = 4) {
$(grid).setColProp('note', { editoptions: { readonly:true} });
}

in the restorecell Event:
$(grid).setColProp('note', { editoptions: { readonly:false} });

1 个答案:

答案 0 :(得分:0)

在列 stateCode textReadyOnly中调用colModel函数,以生成列readOnly=true。根据条件,它生成textarea readOnly = true/false

<强>代码:

$(document).ready(function(){
    //jqGrid
    $("#statesList").jqGrid({
        url:'<%=request.getContextPath()%>/Admin/getAllStatesList',
        datatype: "json",               
        colNames:['Edit','State Code','State Name','Country Name', 'Country Code','Active'],
        colModel:[
            {name:'stateId', index:'stateId',search:false, width:30,sortable: false, formatter: editLink},
            {name:'stateCode',index:'stateCode', width:100, formatter:textReadOnly},
            {name:'stateName',index:'stateName',width:200},
            {name:'countryName',index:'country.countryName', width:200},
            {name:'countryCode',index:'country.countryCode', width:100},
            {name:'isActive',index:'isActive',width:80},
            ],
            rowNum:20,
            rowList:[10,20,30,40,50],
            rownumbers: true,  
            pager: '#pagerDiv',
            sortname: 'stateCode',  
            viewrecords: true,  
            sortorder: "asc",
            autowidth:'true',
    });
    $('#gridContainer div:not(.ui-jqgrid-titlebar)').width("100%");
    $('.ui-jqgrid-bdiv').css('height', window.innerHeight * .65);
    $('#load_statesList').width("130");
    $("#statesList").jqGrid('navGrid','#pagerDiv',{edit:false,add:false,del:false});
    $(".inline").colorbox({inline:true, width:"20%"});
});
function editLink(cellValue, options, rowdata, action) {
       return "<a href='<%=request.getContextPath()%>/Admin/addState/"
    + rowdata.stateId + "' class='ui-icon ui-icon-pencil' ></a>";
}
function textReadOnly(cellValue, options, rowdata, action) {
    if (rowdata.stateId == 4) {
        return "<input value='"+ rowdata.stateId +"' readonly='true'></input>";
    } else {
        return "<input value='"+ rowdata.stateId +"'></input>";
    }
}