子表 下拉列表 控件 不重复选择 实现
2020-05-13 13:03:39
34635次阅读
1个回答

如图,需要实现的效果是之前已经选过的记录(MES),在下拉列表中变为不可选(不管是变成不可选还是数据域里屏蔽掉那条记录都可以),结果是明细单据里面的业务线是唯一的。

收藏 0

登录 后回答问题。没有帐号? 注册 一个。

    2020-05-22 14:26:53
    最佳答案

    通过表单二开js事件实现:

    代码如下:

    function ESUIForm_OnBeforeClickCallback(){
        if(this.id.indexOf('ES_HEAD_DETAIL@NAME')>0){
           disabledselectedOption('ES_HEAD_DETAIL','NAME',this);
       }
    }

    // 表单子表下拉列表框对已选中的下拉禁止选择
    // tableName:子表表名;fiedName:下拉列表框绑定的字段,selectctrl:对象
    function disabledselectedOption(tableName,fiedName,selectctrl){
        // 当前的值
           var newvalue=$(selectctrl).val();
        // 所有选中的值数组
        var ctrlValues = $es.form.getCtrlValue(tableName, fiedName);
        
        $.each(selectctrl.options,function (){
            if(this.value!='' && this.value!=newvalue && $.inArray(this.value,ctrlValues)>-1){
                $(this).prop('disabled', true);
            }
            else{
                $(this).prop('disabled', false);
            }
        });
        $(selectctrl).selectpicker('refresh');
    }
    实现效果:

共1条 1

sulj

  • 0 回答
  • 0 粉丝
  • 0 关注