• dorado在dialog中使用js通过控件id修改控件值,值闪烁一下消失问题


    在使用dorad过程中,在dialog中编写了复选下拉框,选择完值后,后台js获取选择的值对前台的autoFormElement赋值时element中的值闪烁一下消失,百度没有解决方法,多次尝试后使用dataSet功能解决,记录该问题。

    dorado前端代码:

    <AutoForm id="autoformId">
    <Property name="dataSet">KcsbszDS</Property>
    <Property name="cols">*</Property>
    <Property name="labelWidth">100</Property>
    <AutoFormElement id="fjext">
    <Property name="name">fjext</Property>
    <Property name="property">fjext</Property>
    <Property name="trigger">fileTypesDropDown</Property>
    <Property name="editable">false</Property>
    <Editor>
    </Editor>
    </AutoFormElement>

    </AutoForm>
    <CustomDropDown id="fileTypesDropDown">
    <Container>
    <Grid id="fileTypesGrid">
    <Property name="selectionMode">multiRows</Property>
    <RowSelectorColumn/>
    <DataColumn>
    <Property name="readOnly">true</Property>
    <Property name="caption">常用文件类型</Property>
    <Property name="name">value</Property>
    <Property name="property">value</Property>
    <Editor/>
    </DataColumn>
    </Grid>
    <Container>
    <Button id="fileTypeSubBtn" >
    <Property name="caption">确定</Property>
    </Button>
    </Container>
    </Container>
    </CustomDropDown>

    错误的js赋值方法,下面的红色代码,
    // @Bind #fileTypesGrid.onCreate
    !function(self, arg) {
    var datas = [ {
    key : 0,
    value : "doc"
    }, {
    key : 1,
    value : "docx"
    }, {
    key : 2,
    value : "zip"
    }, {
    key : 3,
    value : "rar"
    }, {
    key : 4,
    value : "pdf"
    }];
    self.set("items",datas);
    }
    // @Bind #fileTypeSubBtn.onClick
    !function (self,arg) {
    var grid = view.get("#fileTypesGrid");
    var datas = grid.get("selection");
    var labelStr = "";
    var s = 1;
    datas.each(function(data){
    if (++s <= datas.length){
    labelStr+=data.value+",";
    }else{
    labelStr+=data.value;
    }
    });
    view.get("#fileTypesDropDown").close();
    // view.set("#fjext.value",labelStr);
    view.id("fjext").set("value",labelStr); ----》将该代码修改为
        var data = view.get("#KcsbszDS").getData("#");
    data.set("fjext", labelStr);
    }
    修改后问题得到解决,在之前的非dialog中autoformElement是可以正常通过view.get("#xx").set("value","xx");来进行赋值,但是在dialog中我无法实现js赋值,后想到dataSet的作用,修改dataSet中的Data对应的属性值,实现对页面的控制。



    我会慢慢更新一下Java 的学习知识,在我所写的内容中有不懂的可以直接私信我。
  • 相关阅读:
    vscode的插件收集
    关于vue移动端的适配
    Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null objec
    android studio 使用 aidl(三)权限验证
    Android权限级别(protectionLevel)
    android studio 使用 aidl(二)异步回调
    android studio 使用 aidl(一)基础用法
    如何获取Android唯一标识(唯一序列号)
    android studio 生成aar和引用aar
    android studio 编译NDK android studio 生成.so文件
  • 原文地址:https://www.cnblogs.com/interflow/p/15078475.html
Copyright © 2020-2023  润新知