2012-10-29 66 views
1

我有一個使用jqGrid的表,我需要在編輯行時根據行上的值不能編輯某些列。我知道如何避免根據單元格值對行進行編輯,但是在整個行級別,我不知道如何在列級別指定。這是雙擊我的表的功能。jqGrid:編輯行時對列進行條件編輯

ondblClickRow: function(id){ 

    var code = id.split("-")[0]; 
    var status = id.split("-")[1]; 
    if((code == "0" && status == "255") || (code == "1" && status == "0") 
      || (code == "1" && status == "1") 
      || (code == "2" && status == "255")){ 
     return; 
    }else{ 
     jQuery('#nameableSignalsListView').jqGrid('editRow',id, { 
      keys : true, 
      reloadAfterSubmit:true, 
      successfunc: function(response, postdata) {      
       var result = printErrors(response, false); 
       if(result === true) { 
        return true; 
       } else { 
        setTimeout(function() { 
        customAlert(result); 
       }, 200);  
        return false; 
       } 
      }, 
      restoreAfterError: false, 
      url: appRootUrl + "rest/nameableSignals/update" 
     }); 
    } 
} 

回答

0

我多次回答同一個問題。主要的理解問題是該列的editing: true屬性將在初始化時被editRow讀取。因此,您可以在撥打editRow之前直接設置editing屬性的值,例如setColProp方法,例如。通過這種方式你可以實現你需要的任何動態行爲。

參見the answerthis onethis one。最後一個爲根據formatter: "actions"使用內聯編輯提供瞭解決方案。