大家可能对于Dorado自定义下拉框还有些疑惑,我给大家展示一下我在开发中是如何做的,希望对大家有帮助!记得点赞哟!
1.添加自定义下拉框CustomDropDown、DataSet、DataType,DateType定义两个属性portCode和portName(这两个属性名称可以是任意的),我这里还添加了分页,因此还添加了DataPilot控件
2.DataSet的实现方法
public void getGK(SinoPage<BasePort> page, Map<String, Object> params)
throws Exception {
if (params == null) {
params = Collections.emptyMap();
}
DetachedCriteria dc = DetachedCriteria.forClass(BasePort.class);
String sceneCode = (String) params.get("sceneCode");
String filterValue = (String) params.get("filterValue");
if (StringUtils.isNotEmpty(sceneCode) && "IS_AIR".equals(sceneCode)) {
dc.add(Restrictions.eq("isAirport", "1"));
}
if (StringUtils.isNotEmpty(filterValue)) {
dc.add(Restrictions.or(Restrictions.like("portCode", filterValue
+ "%", MatchMode.START), Restrictions.like("portName",
filterValue + "%", MatchMode.START)));
}
super.pagingQuery(page, dc);
}
3.CustomDropDown的onOpen事件:
view.__initEditor(view.get("#dsGK"), self.get("editor"), "portCode", "portName", "portCode", "portName", function(userData, text) {
return {
sceneCode : userData == null ? "" : userData.sceneCode,
filterValue : text
};
});
OnValueSelect事件:
arg.processDefault = view.__selectedValue(arg.editor,arg.selectedValue);
以及他的一些属性定义:
4.在Autoform相应的属性下选择相应的trigger
在userData里面编辑
code与portCode相对应,name与portName相对应,如果你的项目没有场景代码,那就不需要sceneCode
以上设置好后启动你的项目在相应字段就会有下拉框内容