起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9903|回复: 21

[结贴] 如何将0或1显示为是或否

[复制链接]

532

主题

2107

帖子

4308

积分

论坛元老

起步萌新

Rank: 8Rank: 8

积分
4308
发表于 2017-4-6 15:13:36 | 显示全部楼层 |阅读模式
版本: BeX5V3.5 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
1.png
fhasContract是项目所关联的合同。如果有合同该值为1 否则为 0.

现在在前端想显示为 “是”或“否”。
我试了两种方式:
1.编辑规则设置计算: ($row.val("fHasContract")==1 ? '是' : '否') ,结果全部显示否,我以为不支持三元表达式,试了第二种方式
2.定义函数来计算,
  1. //显示是否有合同
  2.         Model.prototype.hasContract = function(fHasContract) {
  3.                 alert(1);
  4.                 return fHasContract == 1?'是':'否';
  5.         }
复制代码
结果全部显示“否”,加了alert以后,发现4条数据,竟然alert了8次,前4次alert的中间的计算过程是对的,经历了后4次alert,就全部变为“否”了


及时结贴是个好习惯

532

主题

2107

帖子

4308

积分

论坛元老

起步萌新

Rank: 8Rank: 8

积分
4308
 楼主| 发表于 2017-4-6 15:17:07 | 显示全部楼层
2.png

前四次alert后,结果是对的,然后仍有四次alert,就全部变为否了
及时结贴是个好习惯
回复 支持 反对

使用道具 举报

532

主题

2107

帖子

4308

积分

论坛元老

起步萌新

Rank: 8Rank: 8

积分
4308
 楼主| 发表于 2017-4-6 15:18:18 | 显示全部楼层
这显然是因为计算了两遍导致的,但是为什么会计算两遍呢
及时结贴是个好习惯
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-4-6 16:55:58 | 显示全部楼层
可以在grid或者dataTables组件的的onCellRender中处理,如下可以input改为div或者span直接显示
  1. if (event.colName == 'fXB') {

  2.                         if (event.colVal == 1)
  3.                                 event.html = "<input name='" + event.rowID + "' type='radio' value='1' checked/>女" + "<input name='" + event.rowID + "' type='radio' value='0' />男";

  4.                         else if (event.colVal == 0) {

  5.                                 event.html = "<input name='" + event.rowID + "' type='radio' value='1' />女" + "<input name='" + event.rowID + "' type='radio' value='0' checked/>男";
  6.                         }

  7.                         else
  8.                                 event.html = "<input name='" + event.rowID + "' type='radio' value='1' />女" + "<input name='" + event.rowID + "' type='radio' value='0' />男";

  9.                 }
复制代码


远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

532

主题

2107

帖子

4308

积分

论坛元老

起步萌新

Rank: 8Rank: 8

积分
4308
 楼主| 发表于 2017-4-6 17:00:02 | 显示全部楼层
jishuang 发表于 2017-4-6 16:55
可以在grid或者dataTables组件的的onCellRender中处理,如下可以input改为div或者span直接显示

为什么用计算属性不行呢,都是计算了两遍
及时结贴是个好习惯
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-4-6 17:52:08 | 显示全部楼层
规则调用函数具体怎么写的?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

532

主题

2107

帖子

4308

积分

论坛元老

起步萌新

Rank: 8Rank: 8

积分
4308
 楼主| 发表于 2017-4-6 18:26:35 | 显示全部楼层
jishuang 发表于 2017-4-6 17:52
规则调用函数具体怎么写的?

微信截图_20170406181803.png
fHasContract是本体的关系,不是计算关系,然后我在计算一栏写了:
  1. $row.val("fHasContract") == 1 ? '是' : '否'
复制代码

这个也是会计算两遍,全部为“否”;

然后我又用了一个计算关系,fContract,fContract的计算一栏也写了
  1. $row.val("fHasContract") == 1 ? '是' : '否'
复制代码

最后效果和第一种方式一样
及时结贴是个好习惯
回复 支持 反对

使用道具 举报

532

主题

2107

帖子

4308

积分

论坛元老

起步萌新

Rank: 8Rank: 8

积分
4308
 楼主| 发表于 2017-4-6 18:31:36 | 显示全部楼层
jishuang 发表于 2017-4-6 17:52
规则调用函数具体怎么写的?

然后,我用了第三种方式,定义一个函数 微信截图_20170406183018.png

然后在计算一栏中填写:
微信截图_20170406182949.png

最后仍然全部为“否”
及时结贴是个好习惯
回复 支持 反对

使用道具 举报

532

主题

2107

帖子

4308

积分

论坛元老

起步萌新

Rank: 8Rank: 8

积分
4308
 楼主| 发表于 2017-4-6 19:17:42 | 显示全部楼层
微信截图_20170406191546.png
我在model的modelModelConstructDone事件中加了debugger;
然后可以看出,几种方式的计算结果都是正确的,但是从调试恢复后,全部又变成了“否”。

请问这到底是什么机制?
及时结贴是个好习惯
回复 支持 反对

使用道具 举报

532

主题

2107

帖子

4308

积分

论坛元老

起步萌新

Rank: 8Rank: 8

积分
4308
 楼主| 发表于 2017-4-6 19:39:53 | 显示全部楼层
微信截图_20170406192402.png
然后在函数中加了debugger,发现 函数执行了两轮,在modelConstructDone之前执行了一轮,之后又执行了一轮。
这是bug?
及时结贴是个好习惯
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-23 12:28 , Processed in 0.115862 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表