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 的学习知识,在我所写的内容中有不懂的可以直接私信我。
  • 相关阅读:
    bzoj2564: 集合的面积(闵可夫斯基和 凸包)
    省选前做题记录
    loj#2978. 「THUSCH 2017」杜老师(乱搞)
    loj#6437. 「PKUSC2018」PKUSC(计算几何)
    洛谷P4501/loj#2529 [ZJOI2018]胖(ST表+二分)
    loj#6436. 「PKUSC2018」神仙的游戏(NTT)
    洛谷P4459/loj#2511 [BJOI2018]双人猜数游戏(博弈论)
    洛谷P4458 /loj#2512.[BJOI2018]链上二次求和(线段树)
    洛谷P4457/loj#2513 [BJOI2018]治疗之雨(高斯消元+概率期望)
    loj#6435. 「PKUSC2018」星际穿越(倍增)
  • 原文地址:https://www.cnblogs.com/interflow/p/15078475.html
Copyright © 2011-2022 走看看