jQuery MiniUI

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

请教关于DataGrid中checkbox的问题 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2016-6-20 16:34:05 |只看该作者 |倒序浏览
DataGrid列表中,有个列用到了checkbox,
为了根据值的不同(1或0)把每一行这个列中的复选框设置成不同状态(禁用或可用),我使用了监听函数drawcell,通过e.cellHtml把它们分别换成了
if(value=="1"){
      e.cellHtml = '<input type="checkbox" checked="checked" /> '; //可以用
}
if(value=="0"){
      e.cellHtml = '<input type="checkbox" disabled="true" /> '; //不准用
}
这样一来呢,就会达到上面说的那个目的,而且事先值为1的会默认勾上。但是问题来了,因为DataGrid的中是这样的
<div field="SENDWMS" type="checkboxcolumn" headerAlign="center" align="center" trueValue="1" falseValue="0" width="100">可发送通知</div>
我把默认勾上的值为1的复选框取消后,在js的function拿到的值仍然是1,而不是0。所以请版主帮助下。

Rank: 8Rank: 8

沙发
发表于 2016-6-20 16:42:42 |只看该作者
你只关联了数据到checkbox,没有把checkbox的改变关联到数据,必须处理checkbox的事件,点击之后改变值数据里面的值

Rank: 2

板凳
发表于 2016-6-20 16:46:35 |只看该作者
版主能否给些关于这个事件的代码上的参考

Rank: 8Rank: 8

地板
发表于 2016-6-20 17:27:51 |只看该作者
zhs0110 发表于 2016-6-20 16:46
版主能否给些关于这个事件的代码上的参考
  1. if (value == 1) {
  2.                     e.cellHtml = '<input type="checkbox"  onclick="onClick()"   checked="checked" //>';
  3.                 } else {
  4.                     e.cellHtml = '<input type="checkbox" disabled=true" />';
  5.                 }

  6. function onClick() {
  7.                 var row = grid.getSelected();
  8.                 grid.updateRow(row, { xxx: 0 });
  9.        
复制代码

Rank: 2

5#
发表于 2016-6-20 18:09:25 |只看该作者
感谢版主!

Rank: 2

6#
发表于 2016-6-20 18:55:00 |只看该作者
版主,之前的问题解决了,但新的一个问题出现了,如果像这里用onclick的话,我发现设为可用状态的复选框只用一次就被禁用了,如果用API上的valueChange或另一个的话,可以随便用多少次,但当你点击提交按钮后拿到的值依然不是想要的。

Rank: 8Rank: 8

7#
发表于 2016-6-21 09:32:59 |只看该作者
zhs0110 发表于 2016-6-20 18:55
版主,之前的问题解决了,但新的一个问题出现了,如果像这里用onclick的话,我发现设为可用状态的复选框只 ...

现在绘制的是原生的checkbox,不是什么MiniUI控件,事件需要你处理
你可以这样
1 绘制成选中的checkbox
2 绘制成禁用的checkbox
3 绘制成未选中的checkbox
1,3两个状态的checkbox绑点击事件来更新状态

Rank: 2

8#
发表于 2016-6-21 16:23:07 |只看该作者
不是,我现在的情况是用了drawcell事件,能根据返回的值设置某个列的复选框是否可用,而且在通过e.html把之前的东西替换成普通复选框后,可以获得值了,但问题在于你只能点一次就被禁用了,不知道有什么办法能解决这个问题,最好能给点代码参考一下。

Rank: 2

9#
发表于 2016-6-21 16:29:18 |只看该作者

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

10#
发表于 2016-6-21 16:36:33 |只看该作者
zhs0110 发表于 2016-6-21 16:29

既然已经绘制了,就不要用checkboxcolumn
按你的绘制,只有两个状态,1个是选中可点击的checkbox,1个是禁用的,你不就只能在这两种间切换

请参考7楼的回复,绘制多种状态的checkbox,1选中可点击,2未选中禁用,3未选中可点击,
1,3两种状态的checkbox绑定点击事件来回切换
grid.on("drawcell",function(e){
   var value=e.value;
   if(field==""){
          if(value==1)  ....
          if(value==2)....
          if(value==3)....
   }

})

Archiver|普加软件

GMT+8, 2024-11-6 09:43 , Processed in 1.073147 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部