2012-01-18 25 views
2

私の問題は、選択した行のセルの内容に応じて編集可能なセルを編集可能に変更したいということです編集する。 私はこのリンクにOlegの例を使用しました:JQGrid: Dynamically set a cell to uneditable based on content編集可能から編集不可能にセルを変更する方法を理解していますが、それを比較してセルの編集オプションを変更するかどうかを決定するためにセル値を取得できません。jqgrid:編集可能なセルをフォーム編集のセル値に従って編集できないように変更する

更新されたコード:

var Setcelluneditable=function(form) { 
     return function (form) { 
     var id = jQuery(list).getGridParam('selrow'); 
     var ret = jQuery(list).jqGrid('getRowData',id); 
     alert("Arrived="+ret.Arrived); 
     if (ret.Arrived=='Yes') 
     {alert("hello"+id); 
     jQuery(list).setCell(id,'Arrived','',{color:'red'}, editable:'0'});} 
    } 
    }; 

jQuery(list).jqGrid('navGrid',pager,{edit:true,add:true,del:true,search:false,view:true, reload:true}, 
       { 
        width:colwidth, 
        height:"auto", 
        reloadAfterSubmit:true, 
        closeAfterEdit: true, 
        recreateForm: true, 
        ajaxEditOptions: {cache: false}, 
      beforeInitData : Setcelluneditable("#editmod") 
       }, 
       { 
          width:colwidth, 
          height:"auto", 
          reloadAfterSubmit:true, 
          closeAfterAdd: true, 
          recreateForm: true, 
          drag: false 
       }, 
       {}, 
       {}, 
       {}, 
       {}); 

私はすでに構築されているグリッドを変更するので、これは動作するようには思えません。

答えて

5

私は私がそれを行うための方法を見つけたが、最高の1を持つことができます私には思われないと思う:

onSelectRow: function(id){ 
     var ret = jQuery(list).jqGrid('getRowData',id); 
     if (ret.Arrived=='Yes') 
     { 
      jQuery(list).setColProp('Arrived',{editable:false});} 
     else { jQuery(list).setColProp('Arrived',{editable:true});}} 

私は1つの行を選択するたびにColPropを変更します。

+0

本当に多くのことができます – Habeeb

0
selRowId = $(list).jqGrid ('getGridParam', 'selrow'); 
var cm = $(list).jqGrid('getGridParam', 'colModel'); 
for(x=0; x<cm.length; x++){ 
    if(cm[x].name == 'ID'){ 
     $('#' + selRowId + '_' + cm[x].name).attr('disabled', true); 
    } 
} 

onSelectRowイベントのコード

関連する問題