发帖

#楼主# 2021-3-23

跳转到指定楼层

注册氚云社区,学习低代码知识,与更多氚友互动交流

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 老余sam 于 2021-3-23 15:39 编辑

大家好,我已知如何改变某个控件的CSS样式,但是如何改变子表中某一行的单个控件的CSS样式,还请各位大佬教我
以下为我改变子表F0000010控件样式的代码,但是只有第一行的F0000010发生变化。
    OnLoad:function(){
        debugger;
        var parent = this;
        var controlManager = parent.D001074Fwxhb79v1x2r06zc94aoxgpst6;
        controlManager.BindChange("ColorChange",function(data){
            debugger;
            var responseData = data[0];//当前第1行
            if (responseData != null &&   responseData.DataField == "D001074Fwxhb79v1x2r06zc94aoxgpst6.F0000010") {
                var currentRowId = responseData.ObjectId;//获取当前行Id
                currentsum = controlManager.GetCellManager(currentRowId,"D001074Fwxhb79v1x2r06zc94aoxgpst6.F0000010").GetValue();
                statisticssum = controlManager.GetCellManager(currentRowId,"D001074Fwxhb79v1x2r06zc94aoxgpst6.F0000011").GetValue();   
                if( currentsum != statisticssum ) {         
                    //$( "#F0000010" ).css( { "background-color": "orange" });//直接输入控件编码,在字表不需要输入字表编号,但是永远是第一行
                    $( "#F0000010" ).css( { "border-style": "solid","border-color": "red"});//方框框线加粗标红
                }
                else{
                    $( "#F0000010" ).css( { "border-style": "none" });//方框无变化
                }
            }
        })
    },



回复

使用道具

2

主题

10

帖子

502

金币

lv5

Rank: 25

积分
742

氚云标准版氚云专业版

Asunakey 发表于 2021-4-1 10:44:11
var responseData = data[0];//当前第1行
这里的问题,子表我个人认为是相当于数据库取出数据时的datatable类型,你只是获取当前子表第一行的对象,怎么可能改变其他行,需要遍历子表每一行才行,遍历参考开发文档
回复

使用道具 举报

1

主题

3

帖子

95

金币

lv3

Rank: 3Rank: 3Rank: 3

积分
115

氚云专业版氚云标准版

老余sam 发表于 2021-4-2 17:29:17
Asunakey 发表于 2021-4-1 10:44
var responseData = data[0];//当前第1行
这里的问题,子表我个人认为是相当于数据库取出数据时的datatable ...

但是通过断点看到,controlManager.BindChange("ColorChange",function(data){}),然后var responseData = data[0];中的data数组长度只有1,只有1个,不能遍历啊

回复

使用道具 举报

2

主题

10

帖子

502

金币

lv5

Rank: 25

积分
742

氚云标准版氚云专业版

Asunakey 发表于 2021-4-3 10:14:04
本帖最后由 Asunakey 于 2021-4-3 10:15 编辑
老余sam 发表于 2021-4-2 17:29
但是通过断点看到,controlManager.BindChange("ColorChange",function(data){}),然后var responseData  ...

首先,BindChange事件里的data参数,是获取当前选中的行,因此count或者说成员确实只有一个,其次遍历的方法是:
var parent=this;
var str="";
var child_TableData = parent.D000839ProductCaiLiao.GetValue();

//遍历子表编码为num字段的值是否大于0,并赋给str
for( var i = 0;i < child_TableData.length;i++ ) {
            var itemData = child_TableData[ i ];

            if(parseFloat(itemData["num"])>0)
             {
                   str+=itemData["num"];
             }
}
这样就可以了
回复

使用道具 举报

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

本版积分规则

关于作者

老余sam

lv3

  • 主题

    1

  • 帖子

    3

  • 关注者

    3

小黑屋|氚云社区 |粤ICP备15096637号-1
Powered by Discuz! X3.4 Licensed  © 2001-2017 Comsenz Inc.