• Windchill 11文件夹选择组件使用记


    使用的是windchill 11.0

    ​ 因工作需要,需要在自定义的软属性上使用文件夹选择组件,之前都没有使用过此组件,所以经过很长时间的研究终于成功使用了,所以记录下方法,以供需要的人以参考。此方法可能不是最好的实现方式,若有更好的方式也欢迎评论留言。下面具体介绍下使用方法

    1. 为软属性配置datautility(具体操作不详述),dataUtility返回LocationInputComponent,并增加onchange事件

      LocationInputComponent locationInputComponent = new LocationInputComponent(
                              valueInputComponent.getLabel(),
                              preGeneratedFolder, // 默认显示的文件夹OID,不能为空
                              oldDisplayValue,  // 显示值,这里是文件夹路径,如:/xxx库/测试1
                              preSelectedContext // 默认文件夹所属容器OID,不能为空。
                      );
                      locationInputComponent.addHiddenField("selectedFolderFromFolderContext", preGeneratedFolder);  // 添加隐藏字段,key必须为 selectedFolderFromFolderContext
                      locationInputComponent.setId(valueInputComponent.getId());
                      locationInputComponent.setName(valueInputComponent.getName());
                      locationInputComponent.setColumnName(valueInputComponent.getColumnName());
                      locationInputComponent.setRequired(true);
                      locationInputComponent.getLocationTextBox().addJsAction("onchange", "javascript:setTargetLocValue(this)"); // 增加此方法用于将选择的文件夹赋值到当前组件上,不然无法使用 --可能有更好的方式
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
    2. 在对应的jsp页面上提供setTargetLocValue方法

      // 将selectedFolderFromFolderContext 组件上的值 复制到其兄弟组件(排除type为text ---此为显示目录路径的组件,不需要赋其他值,否则显示有问题)
      function setTargetLocValue(thisTarget){
              var newValue = thisTarget.parentNode.querySelector('input[name="selectedFolderFromFolderContext"]').value;
              thisTarget.parentNode.querySelectorAll('input').forEach(el=>{
                  if(el.getAttribute("type") != 'text'){
                      el.value = newValue
                  }
              });
          }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9

      以上两步即可正常使用LocationInputComponent组件。当然对应属性的显示也应该使用dataUtility处理下,否则显示的是文件夹的OID(也不在此详述)。

  • 相关阅读:
    19.详解AQS家族的成员:CountDownLatch
    状态压缩DP
    Market Insight:中国低代码/零代码市场典型供应商名录(2023)发布
    【无标题】
    hive acid及事务表踩坑学习实录
    手撕前端面试题【javascript】
    旋转框目标检测mmrotate v0.3.1 学习模型
    Matter over Wi-Fi: Raspberry Pi 4开发环境设置
    关于线程池概念使用
    linux内核中CMA内存分配
  • 原文地址:https://blog.csdn.net/shui878412/article/details/126576067