APEX interactive grid dynamic set column value example

注意:代码仅在APEX18.1中测试过

案例说明:通过监听IG IDNUM列改变,自动填充BIRTH列值

运行说明:将代码拷贝到IG所在页面,放入页面“加载时执行”,修改IG静态ID,以及其他信息,保存后运行。

案例代码:


(function(apex,debug){

var

  // IG插件静态ID

  // IG static id

  igId='customerList',

  // IG插件实例

  // IG instance

  ig=apex.region(igId).widget(),

  // IG视图层实例

  // IG view

  vw=ig.interactiveGrid('getViews'),

  // IG模型实例

  // IG model

  md=vw.grid.model,

  // IG模型变更事件回调

  // IG change notification callback

  mdChg=function(chgType,chg) {

    switch(chgType) {

      case 'set':

        // IDNUM列改变

        // if IDNUM column changed

        if(chg.field === 'IDNUM') {

          // BIRTH列已有值

          // if birth column value exists ignore

          if(md.getValue(chg.record,'BIRTH')) {

            return;

          }

          var

            // get editing row record or else chg.record

            rec = md.getRecord(chg.recordId),

            // 取新值

            // get idnum column new value

            // chg.oldval get old value

            pin = md.getValue(rec,'IDNUM'),

            // 设置BIRTH列的返回值,SET:设置成功,NC:数据无改变,DUP:recordId重复

            // Set birth column value and assign return value to ret variable

            // possible return values are: SET, NC, DUP

            // SET: set success

            // NC: set failed, value not change

            // DUP: set failed, record id duplicated

            ret = md.setValue(rec,'BIRTH',[pin.substring(6,10),pin.substring(10,12),pin.substring(12,14)].join('-'));

          // 设置成功

          // set BIRTH column value success

          if(ret === 'SET') {

            // 用setData刷新view行,不然view不会刷新:(

            // setData必须传数组

            // call model setData method to refresh view row else view will not get refreshed.

            // setValue don't refresh view, why?

            md.setData([rec], md.indexOf(rec));

          }

        }

        break;

      default:

        // console.info('SET ' + chg.field);

        break;

    }

  };

  // 注册变更事件回调,详见#IMAGE_PREFIX/libraries/apex/model.js

  // register change notifications callback, see:#IMAGE_PREFIX/libraries/apex/model.js

  md.subscribe({onChange:mdChg});

})(apex,apex.debug);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容