【问题标题】:jqgrid: Change editable cell to not editable according to the cell value in form editingjqgrid:根据表单编辑中的单元格值将可编辑单元格更改为不可编辑
【发布时间】:2012-01-18 09:05:46
【问题描述】:

我的问题是我想根据选择要编辑的行的单元格的内容来更改编辑表单中可编辑的单元格或不可编辑的单元格。 我在此链接中使用了 Oleg 的示例:JQGrid: Dynamically set a cell to uneditable based on content 来弄清楚如何将单元格从可编辑更改为不可编辑,但我无法获取单元格值以进行比较并决定是否要更改单元格的编辑选项。

更新代码:

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
                },
                {},
                {},
                {},
                {}); 

这似乎不起作用,因为我更改了已经构建的网格。

【问题讨论】:

    标签: jqgrid edit


    【解决方案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});}}
    

    每次选择一行时我都会更改 ColProp。

    【讨论】:

      【解决方案2】:
      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 事件中的代码

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-18
        • 1970-01-01
        • 2013-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多