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

QQ登录

只需一步,快速开始

查看: 3721|回复: 15

[结贴] 怎么动态生成checkbox组件

[复制链接]

168

主题

744

帖子

1646

积分

金牌会员

Rank: 6Rank: 6

积分
1646
QQ
发表于 2017-4-10 08:53:11 | 显示全部楼层 |阅读模式
怎么动态生成checkbox组件

1

主题

6163

帖子

2095

积分

金牌会员

Rank: 6Rank: 6

积分
2095
QQ
发表于 2017-4-10 10:55:31 | 显示全部楼层
回复 支持 反对

使用道具 举报

168

主题

744

帖子

1646

积分

金牌会员

Rank: 6Rank: 6

积分
1646
QQ
 楼主| 发表于 2017-4-10 11:19:47 | 显示全部楼层
现在版本的checkbox页没有onclick事件啊?
个人QQ:85969042

         欢迎大手子带我飞~
                          ┌───────────┐
                           |  ▉▉▉▉▉▉▉▉ 99%   │       苞米地里的蒙面侠                 
                          └───────────┘
回复 支持 反对

使用道具 举报

1

主题

6163

帖子

2095

积分

金牌会员

Rank: 6Rank: 6

积分
2095
QQ
发表于 2017-4-10 11:39:32 | 显示全部楼层
爱喝牛奶的面包 发表于 2017-4-10 11:19
现在版本的checkbox页没有onclick事件啊?

但是有bind-click啊  效果应该是一样的
回复 支持 反对

使用道具 举报

168

主题

744

帖子

1646

积分

金牌会员

Rank: 6Rank: 6

积分
1646
QQ
 楼主| 发表于 2017-4-11 15:14:04 | 显示全部楼层
还是不能理解他写的是什么意思啊
个人QQ:85969042

         欢迎大手子带我飞~
                          ┌───────────┐
                           |  ▉▉▉▉▉▉▉▉ 99%   │       苞米地里的蒙面侠                 
                          └───────────┘
回复 支持 反对

使用道具 举报

1

主题

6163

帖子

2095

积分

金牌会员

Rank: 6Rank: 6

积分
2095
QQ
发表于 2017-4-11 15:22:36 | 显示全部楼层
爱喝牛奶的面包 发表于 2017-4-11 15:14
还是不能理解他写的是什么意思啊

  那你创建原生的会吗?  append一个原生的效果是一样的吧
回复 支持 反对

使用道具 举报

168

主题

744

帖子

1646

积分

金牌会员

Rank: 6Rank: 6

积分
1646
QQ
 楼主| 发表于 2017-4-11 15:50:16 | 显示全部楼层
也不是太会,我想把生成checkbox组件作为公共方法,然后用到的地方就去调用它。我现在写额肯定不会,但是不知道怎么写了
  1. /*不完善,暂时没用
  2.          * 动态创建checkbox组件
  3.          * xid:checkbox组件的xid
  4.          * parentxid: 父节点的xid
  5.          * */
  6.         Model.prototype.createCheck = function(xid,pmode,parentxid,mainDataXid,value) {
  7.                   var parentNode = self.getElementByXid(parentxid);
  8.               var mainData = self.comp(mainDataXid);
  9.               for(var i = 0;i<mainData.getCount();i++){
  10.                       var checked = '';
  11.                       
  12.                       
  13.               }
  14.               var innertext ="<input type='checkbox' value='' name='' xid='checkbox1' bind-checked='$model.mainData.val("fClass")'></input>";
  15.               var inner=$(innertext);       
  16.                   
  17. //           justep.Bind.addNodes(pmode.domNode, inner);
  18.         };
复制代码


个人QQ:85969042

         欢迎大手子带我飞~
                          ┌───────────┐
                           |  ▉▉▉▉▉▉▉▉ 99%   │       苞米地里的蒙面侠                 
                          └───────────┘
回复 支持 反对

使用道具 举报

168

主题

744

帖子

1646

积分

金牌会员

Rank: 6Rank: 6

积分
1646
QQ
 楼主| 发表于 2017-4-11 15:52:04 | 显示全部楼层
这个是公司别人写的,创建button和创建input的方法,我就是想按照这样的去做
  1. /*动态创建Button组件  
  2.      *xid:Button组件xid  
  3.      *parentxid 父节点的xid
  4.      *label button显示
  5.      *action button按钮执行的事件 ,注意在系统sys表中填写的事件格式{"operation":"Dialog_area.open"}
  6.      */  
  7.         Model.prototype.createButton = function(xid,parentxid,label,action) {
  8.                
  9.                 var parentNode = self.getElementByXid(parentxid);
  10.                 if (parentNode) {
  11.                
  12.                         var flag = {
  13.                                 xid : xid,
  14.                                 label : label,
  15.                                 'bind-disable': ' $model.controlStatusData.val("isReadOnly")',
  16.                             parentNode : parentNode,
  17.                                 'class' : "btn btn-default btn-only-icon",
  18.                                 "icon":"linear linear-pointerright",
  19.                                 onClick: action
  20.                         };
  21.                
  22.                         if(action.indexOf("operation")>=0)
  23.                 {
  24.                  
  25.                 }
  26.         else
  27.                 {
  28.                 delete flag.onClick;
  29.                 }
  30.                         var button = new Button(flag);
  31.                         //'{"operation":"Dialog_selectDepart.open"}'
  32.                         //button.on("onClick", function(event) {
  33.                         //onClick='{"operation":"Dialog_selectDepart.open"}'
  34.                                 //alert("aler",event.source.get('label'));
  35.                         //});
  36.                 }
  37.         };
  38.         /*动态创建Input组件  
  39.     *xid:Input组件xid  
  40.     *parentxid 父节点的xid   
  41.     *mainDataXid 组件对应的xid  mainData
  42.     *value 字段名 *
  43.     *othervalue json结构   
  44.                 format : othervalue.format,日期格式
  45.                                 pattern:othervalue.dataValidate,输入正则的验证,不是输入后的验证,而是控制输入错误的
  46.                                 readonly:othervalue.isReadOnly,只读属性
  47.                                 placeHolder:othervalue.isRequire, 必填灰色提示,现在不起作用,不知道原因
  48.                                 */
  49.        
  50.         Model.prototype.createInput = function(xid,parentxid,mainDataXid,value,othervalue) {               
  51.        
  52.                 if (othervalue.isRequire===true){othervalue.isRequire="必填";} else{othervalue.isRequire="";}
  53.                 if (othervalue.dataValidate===true){} else{othervalue.isRequire="";}
  54.                 if (othervalue.isReadOnly===true){} else{othervalue.isReadOnly=false;}
  55.                 var parent = self.getElementByXid(parentxid);
  56.                 var bindref=mainDataXid+'.ref("'+value+'")';// //
  57.                 if (parent) {
  58.                         var cfg = {
  59.                                 'bind-ref': bindref,
  60.                                 format : othervalue.format,
  61.                                 pattern:othervalue.dataValidate,
  62.                                 readonly:othervalue.isReadOnly,
  63.                                 placeHolder:othervalue.isRequire,
  64.                                 parentNode : parent
  65.                                
  66.                         };
  67.                         new Input(cfg);
  68.                 }
  69.         };
复制代码


个人QQ:85969042

         欢迎大手子带我飞~
                          ┌───────────┐
                           |  ▉▉▉▉▉▉▉▉ 99%   │       苞米地里的蒙面侠                 
                          └───────────┘
回复 支持 反对

使用道具 举报

1

主题

6163

帖子

2095

积分

金牌会员

Rank: 6Rank: 6

积分
2095
QQ
发表于 2017-4-11 17:17:53 | 显示全部楼层
爱喝牛奶的面包 发表于 2017-4-11 15:52
这个是公司别人写的,创建button和创建input的方法,我就是想按照这样的去做

...

我觉得那个创建button的就可以  不过感觉缺点啥
回复 支持 反对

使用道具 举报

168

主题

744

帖子

1646

积分

金牌会员

Rank: 6Rank: 6

积分
1646
QQ
 楼主| 发表于 2017-4-12 14:55:23 | 显示全部楼层
我按照button那个做的,出现现在的情况了
  1. /*不完善,暂时没用
  2.          * 动态创建checkbox组件
  3.          * xid:checkbox组件的xid
  4.          * parentxid: 父节点的xid
  5.          * */
  6.         Model.prototype.createCheck = function(xid,parentxid,mainDataXid,value) {
  7.                 debugger;
  8.                   var parent = self.getElementByXid(parentxid);
  9. //              var mainData = self.comp(mainDataXid);
  10.               var bindref = mainDataXid+'.ref("'+value+'")';
  11.               var chk = {
  12.                               xid : xid,
  13.                               parentNode : parent,
  14.                               'bind-ref' : bindref,
  15.                               class : 'x-checkbox'
  16.               };
  17.               var Check = new Check(chk);

  18.         };
复制代码
  1. if (controlType == "文本框") {
  2.                                 Model.prototype.createInput("input" + columnName, "zd_" + columnName, mainDataXid, columnName, othervalue);
  3.                         } else if (controlType == "日期时间框") {
  4.                                 othervalue.format = "yyyy-MM-dd";
  5.                                 Model.prototype.createInput("inputtime" + columnName, "zd_" + columnName, mainDataXid, columnName, othervalue);
  6.                         } else if (controlType == "选择文本框") {
  7.                                 Model.prototype.createInputButton("inputbutton" + columnName, "zd_" + columnName, '...', inputBtnEvent, mainDataXid, gridDisplayColumnName, othervalue);
  8.                         } else if (controlType == "下拉列表") {
  9.                                 Model.prototype.createGridSelect("select" + columnName, "zd_" + columnName, mainDataXid, gridDisplayColumnName, columnName, "selectData", controlSourceLabelName,
  10.                                 controlSourceValueName, '$row.val("classID") ==' + controlSourceName, othervalue);
  11.                         } else if (controlType == "单选框") {
  12.                                 debugger;
  13.                                 Model.prototype.createCheck("checkbox"+columnName,"zd_" + columnName,mainDataXid,columnName);
  14. //                                var pmod1 = self.comp("zd_" + columnName);
  15. //                                self.createCheck(pmod1, 'columnData', "columnName");
  16.                         } else {
  17.                                 Model.prototype.createInput("input" + columnName, "zd_" + columnName, mainDataXid, columnName, "", othervalue);
  18.                         }
复制代码
这是根据是否是单选框动态生成checkbox。


1491979911(1.jpg

这是我debugger了一下,这是取到的数

这是我debugger了一下,这是取到的数
个人QQ:85969042

         欢迎大手子带我飞~
                          ┌───────────┐
                           |  ▉▉▉▉▉▉▉▉ 99%   │       苞米地里的蒙面侠                 
                          └───────────┘
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-2 06:39 , Processed in 0.111376 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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