jQuery MiniUI

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

checkboxcolumn [复制链接]

Rank: 6Rank: 6

跳转到指定楼层
楼主
发表于 2013-9-16 10:38:30 |只看该作者 |倒序浏览
本帖最后由 小葱儿 于 2013-9-16 10:47 编辑

我在dategrid 中,有一列是  <div type="checkboxcolumn" field="IsUse"  property="editor" trueValue="1" falseValue="0" width="60" headerAlign="center">是否启用</div>     

我想让这一列  的 checkboxcolumn   只有一个被选中,当其中一个被选中的时候,其他的自动变为不选中,我该怎么写呢


我是这么写的,但是不对,起不到效果


function oncellbeginedit(e) {
             if (e.field == "IsUse") {


                 grid.getColumn("IsUse")
                     for (var i = 0; i <= e.sender._dataSource.dataview.length - 1; i++) {



                     if (e.sender._dataSource.dataview.GroupID != e.row.GroupID) {




                         e.sender._dataSource.dataview.IsUse = false;
                     }


                 }


             }
         }

Rank: 8Rank: 8

沙发
发表于 2013-9-16 11:32:32 |只看该作者
已经回复你了啊,如果是单选的话,用radiobuttoncolumn试试

Rank: 6Rank: 6

板凳
发表于 2013-9-16 13:25:07 |只看该作者
factory 发表于 2013-9-16 11:32
已经回复你了啊,如果是单选的话,用radiobuttoncolumn试试

radiobuttoncolumn  有 onvaluechanged 的事件吗

Rank: 8Rank: 8

地板
发表于 2013-9-16 13:36:42 |只看该作者
小葱儿 发表于 2013-9-16 13:25
radiobuttoncolumn  有 onvaluechanged 的事件吗

可以监听单元格的oncellbeginedit和oncellcommitedit事件

Rank: 6Rank: 6

5#
发表于 2013-9-16 16:29:57 |只看该作者
factory 发表于 2013-9-16 13:36
可以监听单元格的oncellbeginedit和oncellcommitedit事件

   function oncellbeginedit(e) {
             if (e.field == "IsUse") {


                 mini.confirm("确定要启用此标准组吗,原先标准组将会关闭?", "确定?",
            function (action) {
                if (action == "ok") {
                    e.cancel = false;
                } else {
                    e.cancel = true;
                }
            }
        );


             }
         }

在监听的时候,我点击取消的话,动作不会不执行???

Rank: 6Rank: 6

6#
发表于 2013-9-16 16:35:36 |只看该作者
factory 发表于 2013-9-16 13:36
可以监听单元格的oncellbeginedit和oncellcommitedit事件

   function oncellbeginedit(e) {
             if (e.field == "IsUse") {


                 mini.confirm("确定要启用此标准组吗,原先标准组将会关闭?", "确定?",
            function (action) {
                if (action == "ok") {
                    e.cancel = false;
                } else {
                    e.cancel = true;
                }
            }
        );


             }
         }

在监听的时候,我点击取消的话,动作不会不执行???

Rank: 8Rank: 8

7#
发表于 2013-9-16 17:19:36 |只看该作者
小葱儿 发表于 2013-9-16 16:35
function oncellbeginedit(e) {
             if (e.field == "IsUse") {

会继续执行,因为JS模拟的alert窗口都是不会阻塞代码执行的
也就是说还没等你执行callback,其实代码已经执行下去了,也就等于是可以编辑

function oncellbeginedit(e){
      e.cancel = true;//先阻止掉,不让编辑
     var row = e.row
      mini.confirem("",function(action){
            if(action == "ok"){
                     grid.updateRow(row,{IsUse:你的确定的值})    //如果是确定,那么再改变该单元格的值
             }
      })
}

Archiver|普加软件

GMT+8, 2024-11-29 20:31 , Processed in 1.040780 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部