jQuery MiniUI

标题: checkboxcolumn [打印本页]

作者: 小葱儿    时间: 2013-9-16 10:38:30     标题: checkboxcolumn

本帖最后由 小葱儿 于 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;
                     }


                 }


             }
         }

作者: factory    时间: 2013-9-16 11:32:32

已经回复你了啊,如果是单选的话,用radiobuttoncolumn试试
作者: 小葱儿    时间: 2013-9-16 13:25:07

factory 发表于 2013-9-16 11:32
已经回复你了啊,如果是单选的话,用radiobuttoncolumn试试

radiobuttoncolumn  有 onvaluechanged 的事件吗
作者: factory    时间: 2013-9-16 13:36:42

小葱儿 发表于 2013-9-16 13:25
radiobuttoncolumn  有 onvaluechanged 的事件吗

可以监听单元格的oncellbeginedit和oncellcommitedit事件
作者: 小葱儿    时间: 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;
                }
            }
        );


             }
         }

在监听的时候,我点击取消的话,动作不会不执行???
作者: 小葱儿    时间: 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;
                }
            }
        );


             }
         }

在监听的时候,我点击取消的话,动作不会不执行???
作者: factory    时间: 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:你的确定的值})    //如果是确定,那么再改变该单元格的值
             }
      })
}




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2