jQuery MiniUI

 找回密码
 立即注册
查看: 3158|回复: 7
打印 上一主题 下一主题

单元格编辑 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2018-6-21 10:08:44 |只看该作者 |倒序浏览

请教大佬个问题,下面原来是修改按钮,点击修改,前面三个type=checkbox的和发不开始结束日期可以修改,但是当我修改完时间以后,前面三个checkbox就自动禁用了,这个是因为什么?怎么解决?
  1. function OnCellCommitEdit(e) {
  2.             var grid = e.sender;
  3.             var record = e.record;
  4.             var field = e.field, value = e.value;
  5.             grid.updateRow(record,{});
  6.             changeCheckboxState('2')
  7.         }
复制代码
这个是onCellCommitEdit事件,我在updateRow后面启用了checkbox,但是无效
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

沙发
发表于 2018-6-21 10:15:01 |只看该作者
本帖最后由 felt 于 2018-6-21 10:17 编辑

你这处理逻辑我有点看懂,为何在commitedit事件中updateRow?还是个空数据?
请提供一个简单的html来重现你的问题。回复高级模式可以上传文件。

Rank: 3Rank: 3

板凳
发表于 2018-6-21 10:49:47 |只看该作者
felt 发表于 2018-6-21 10:15
你这处理逻辑我有点看懂,为何在commitedit事件中updateRow?还是个空数据?
请提供一个简单的html来重现你 ...

<div id="datagrid" class="mini-datagrid" allowCellEdit="true" allowCellSelect="true" onlyCheckSelection="true" editNextOnEnterKey="true" editNextRowCell="true" oncellcommitedit="OnCellCommitEdit">
            <div property="columns">
                <div header="发布状态" headerAlign="center">
                    <div property="columns">
                        <div field="zxnb" name="zxnb" width="65px">中心内部</div>
                        <div field="scl" name="scl" width="55px">市残联</div>
                        <div field="xxzx" name="xxzx" width="65px">信息中心</div>
                    </div>
                </div>
                <div field="fbyxjsrq" name="fbyxjsrq" dateFormat="yyyy-MM-dd HH:mm:ss" headerAlign="center" width="150px">发布有效结束日期
                    <input ondrawdate="" class="mini-datepicker" property="editor" width="103"
                           format="yyyy-MM-dd HH:mm:ss" timeFormat="HH:mm:ss" showTime="true" showOkButton="false"
                           showClearButton="false" allowInput="false"/>
                </div>
            </div>
        </div>
    </div>
    <script type="text/javascript">
        mini.parse();
        var grid = mini.get("datagrid");
      
        function updateDataResource() {
            enableItems("1");
            grid.setAllowCellEdit(true);
        }
        function OnCellCommitEdit(e) {
            var grid = e.sender;
            var record = e.record;
            var field = e.field, value = e.value;
            grid.updateRow(record,{});
            changeCheckboxState('2')
        }
       function changeCheckboxState(lx){
            if(lx=='1'){//禁用
                $("input[type=checkbox]").each(function(){
                    $(this).attr("disabled",true);
                });
            }else if(lx=='2'){//启用
                $("input[type=checkbox]").each(function(){
                    $(this).attr("disabled",false);
                });
            }
        }
    </script>


Rank: 3Rank: 3

地板
发表于 2018-6-21 10:52:56 |只看该作者
danishlyy 发表于 2018-6-21 10:49
中心内部
              ...

grid.on('drawcell',function(e){
                record = e.record,
                column = e.column;
            if(column.name == "zxnb" && e.row.zxnb=="1") {
                e.cellHtml='<input type="checkbox" checked="true"  disabled />'
            }else if(column.name == "zxnb" &&e.row.zxnb !='1') {
                e.cellHtml='<input type="checkbox"  disabled />'
            }
            if(column.name == "scl" &&e.row.scl=='2') {
                e.cellHtml='<input type="checkbox" checked="true"  disabled />'
            }else if(column.name == "scl" &&e.row.scl!='2'){
                e.cellHtml='<input type="checkbox"  disabled />'
            }
            if(column.name == "xxzx" &&e.row.xxzx=='3') {
                e.cellHtml='<input type="checkbox" checked="true"   disabled />'
            }else if(column.name == "xxzx" &&e.row.xxzx!='3'){
                e.cellHtml='<input type="checkbox"   disabled />'
            }
        });
        function enableItems(lx){
            var controls=mini.findControls(function(control){
                if(control.type=="textbox"||control.type=="checkboxlist"|| control.type=="combobox") return true;
            })
            $(controls).each(function(i,item){
                if(lx == '1'){
                    item.setEnabled(true);
                    changeCheckboxState('2')
                    mini.get("tjjgNo").setEnabled(false);
                }else{
                    item.setEnabled(false);
                    changeCheckboxState('1')
                }
            });
        }

Rank: 3Rank: 3

5#
发表于 2018-6-21 10:54:58 |只看该作者
commit事件不是提交编辑行吗?单元格编辑我不需要这个事件?我现在需求是只要发布开始结束日期可以修改和前面三个checkbox可以修改,其余不修改  后台也只需要更新者几个字段

Rank: 8Rank: 8

6#
发表于 2018-6-21 12:12:25 |只看该作者
danishlyy 发表于 2018-6-21 10:54
commit事件不是提交编辑行吗?单元格编辑我不需要这个事件?我现在需求是只要发布开始结束日期可以修改和前 ...

这是你自己绘制的checkbox
为何不用checkboxcolumn?
grid.on("cellbeginedit",function(e){
   if(e.field==........){
   
   }else{
          e.cancel=true;//禁止编辑
   }
})

Rank: 3Rank: 3

7#
发表于 2018-6-21 12:35:15 |只看该作者
felt 发表于 2018-6-21 12:12
这是你自己绘制的checkbox
为何不用checkboxcolumn?
grid.on("cellbeginedit",function(e){

我需要在我的那三个div下面加<input type=checkboxcolumn>?下面grid.on("drawcell”)替换为cellbeginedit?

Rank: 8Rank: 8

8#
发表于 2018-6-21 13:09:37 |只看该作者
danishlyy 发表于 2018-6-21 12:35
我需要在我的那三个div下面加?下面grid.on("drawcell”)替换为cellbeginedit?

http://www.miniui.com/demo/#src=datagrid/celledit.html
参考我们示例里面checkboxcolumn的用法,这就是编辑

Archiver|普加软件

GMT+8, 2025-3-15 04:21 , Processed in 1.031897 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部