zoukankan      html  css  js  c++  java
  • 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 的学习知识,在我所写的内容中有不懂的可以直接私信我。
  • 相关阅读:
    JavaScript入门二
    JavaScript入门
    CSS样式之补充
    CSS样式之操作属性二
    隔空手势操作
    项目管理培训(2)
    uoot启动过程
    new work
    库函数开发步骤 (转)
    keil(持续更新)
  • 原文地址:https://www.cnblogs.com/interflow/p/15078475.html
Copyright © 2011-2022 走看看