2011-03-15 71 views
2

我如何更改單元格輸入到「只讀」後我加載所有網格的數據?jqgrid更改單元格輸入後只讀網格加載

我只想裝入的行將此單元格作爲只讀,當我添加新行時,我不希望此單元格爲只讀。

感謝提前。

UPDATE:

這是我的代碼:

$("#Grid1").jqGrid(
     { 
      editurl: "clientArray", 
      datatype: 'xmlstring', 
      datastr: '<%=_xml_string %>' , 
      colNames:['','cell1','cell2', 'cell3'], 
      colModel:[ 
             {name:'cell1',index:'cell1', hidden: true}, 
             {name:'cell2',index:'cell2', width:150, editable:true, edittype:'text',sorttype:"int" , 
              editoptions: 
              {            
               maxlength:5, 
               dataInit: function (elem) 
               { 
                $(elem).numeric(false); 

                $(elem).blur(function(event_) 
                { 

                }); 
               }, 
               dataEvents: 
               [ 
               { 
                type: 'keydown', 
                fn: function(e) 
                { 
                 var key = e.charCode || e.keyCode; 
                 if(key == 113) 
                 { 
                 } 
                } 
               } 
              ] 
              }             
             }, 
             {name:'cell3',index:'cell3', width:150 , editable:true,sorttype:"text" , 
              editoptions: 
              { 
              readonly: 'readonly' , 
              dataInit: function (elem) 
              { 
                $(elem).attr("tabindex","-1");              
              }             
              } 
             } 
            ], 
      height: '120px' , 
      autowidth: true, 
      shrinkToFit: false, 

      beforeSelectRow: function(rowid, e) 
      { 
       if (required_field != rowid && required_field!="") return false; 
       else 
       { 
        if($(this).getGridParam('selrow') == rowid) 
         return false; 
        else 
         return true; 
       } 
      }, 
      onSelectRow: function(id) 
      {           
       save_row(lastSel); 
       get_grid().editRow(id,false,'','','','','','',''); 
       jQuery ('#' + id + _cell2').focus(); 
       lastSel=id;      
      }, 
      loadComplete: function() 
      { 
       var grid = $("#Grid1"); 
       var ids = grid.jqGrid('getDataIDs'); 
       for (var i=0;i<ids.length;i++) 
       { 
        var id_=ids[i];alert(id_); 
        grid.jqGrid('setCell',id_,'cell2','','not-editable-cell'); 
       } 
      } 
      });    

回答

3

如果你使用一些編輯模式來編輯網格,你可以設置任何時候「不是編輯的細胞」的細胞或該行上的'not-editable-row'以防止單元格或行可編輯。代碼示例請參閱this answer

+0

@Oleg:謝謝!但由於某種原因,這對我不起作用。我使用editurl:「clientArray」,datatype:'xmlstring',datastr:'<%= _ xml_string%>',並且在dataInit:function(elem) (ELEM).numeric(假);.我完全加了你在例子中寫的東西..任何想法? – user590586 2011-03-15 13:11:18

+0

@ user590586:我嘗試在'dataInit'裏面使用'$(elem).numeric(false);'在我的代碼中完美工作。如果我將'not-editable-row'類添加到某些行,則它們不可編輯。我不明白你想要哪個單元格「只讀」。也許你應該只發布你想要的「只讀」單元的HTML代碼,並展示如何將代碼放置在jqGrid單元格內。 – Oleg 2011-03-15 14:55:09

+0

@ Oleg:我真的很喜歡你的幫助!我用curretn代碼更新了我的問題。 – user590586 2011-03-15 16:32:25

相關問題