永洪社区

标题: 这个脚本有什么问题? [打印本页]

作者: kkno15171    时间: 2023-9-22 15:35
标题: 这个脚本有什么问题?
有这么一个场景:
页面A有下拉参数组件 a(对应的参数为 param['a']),页面B也有下拉参数组件a(对应的参数为 param['a'])
页面A会跳转页面B,并传递参数,但是页面A中的a的值域 不等于 页面B中的a的值域,在v10版本的永洪中,B页面的下拉参数组件就会显示为空,没有进行任何勾选。
因此,以下方法就想要去解决这个问题:
即,当传入的参数不在下拉参数的值域中时,让组件去选第一个值。


function downSelNoNull(ObjName,paramName)
{
    var contexts = ObjName.getObjects; // 获取下拉筛选框的值
    var temp = 0;
    var a = paramName; //参数值
        debug(contexts.length)
    for(var i=0;i<contexts.length;i++){
        if(a==contexts[i][0){
        temp = 1
        }
         if(temp==0){
        ObjName.setSelectedIndex(0)
        }
    }
}


downSelNoNull(a,param['a'])


但是在实际执行中,上面脚本中执行出来的debug(contexts.length)始终为0,想问题下脚本有什么问题。
或者怎么才能够让一个函数中的 contexts = ObjName.getObjects 同在函数外一样,从而for循环可以正常去遍历?



作者: 行走的蜗牛    时间: 2023-9-22 16:30
B的下拉设置默认第一个值不起作用吗
作者: kkno15171    时间: 2023-9-22 16:38
行走的蜗牛 发表于 2023-9-22 16:30
B的下拉设置默认第一个值不起作用吗

不起。
永洪那里回复说是,
10版本参数传递的优先级是比选中第一个值的优先级高,当参数传递选不到值时,就把整个组件置为空了,也不会去执行默认第一个值。
作者: 行走的蜗牛    时间: 2023-9-22 16:44
kkno15171 发表于 2023-9-22 16:38
不起。
永洪那里回复说是,
10版本参数传递的优先级是比选中第一个值的优先级高,当参数传递选不到值时, ...

哦,可以试试在A增加一个过渡参数c,类似case when处理,然后B接收c参数
作者: yhdata_lyaa    时间: 2023-9-22 18:25
可以试试楼上的方法,是下拉列表参数吗
作者: sunlnlin123    时间: 2023-9-27 09:35
可不可以在页面B加载时运行的脚本中,直接判断参数b是否为空,如果为空,执行setSelectedIndex(0),因为跳转打开,参数b为空就已经可以证明b中不存在a选中的值了。




欢迎光临 永洪社区 (https://club.yonghongtech.com/) Powered by Discuz! X3.4