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 的学习知识,在我所写的内容中有不懂的可以直接私信我。