2011-03-15 75 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

相关问题