本篇對DataSetDropDown下拉框進行講解:
這裏以車號下拉框進行講解,最終效果如圖:
1.首先創建相應的DataType和DataSet,添加DataSetDropDown下拉框,綁定相應的dataSet,配置相應的參數,參數裏邊:displayProperty是下拉框顯示的字段,property是將選中的值set給相應的字段,在這裏我顯示爲車號,set的值也是車號
2.dataSetDropDown onSetFilterParameter事件:
view.get("#dsTmsCar").set("parameter",{carNo:arg.filterValue}).flushAsync();
OnValueSelect事件:
var dsTmsCar =view.get("#dsTmsCar");
var dsCarFix =view.get("#dsCarFix");
var driverName = dsTmsCar.getData("#.driverName");
var driverCode = dsTmsCar.getData("#.driverCode");
dsCarFix.getData("#").set("driverName",driverName);
dsCarFix.getData("#").set("driver",driverCode);
dsTmsCar是下拉框實體,dsCarFix是我操作的實體,因爲我需要實現選中車號帶出司機,因此需要此事件,如果只是做個車號下拉框,該事件不需要
3.dsTmsCar的實現類
public Collection<TmsCar> findCarsForDrop(Map<String, Object> params) {
DetachedCriteria dc = DetachedCriteria.forClass(TmsCar.class);
if (params!=null) {
String carNo = (String) params.get("carNo");
if (ParamUtil.checkParamEmpty(carNo)) {
dc.add(Restrictions.like("carNo", "%"+carNo+"%"));
}
}
dc.addOrder(Order.desc("createTime"));
dc.add(Restrictions.eq("isValid", Constants.IS_VALID));
return super.findByCriteria(dc);
}
以上就是改下拉框的實現。
另:dataSetDropDown下拉框的assignmentMap屬性(可能會用得到,只是上面介紹沒有),有時我們需要兩個字段一個code,一個name,下拉框顯示只需要name字段,而保存的時候,需要把code和name的值都能保存起來。例如:下拉框 name:張三 code: zhangsan,頁面我只有name字段,但數據庫有code和name兩個字段,這個時候就需要用到assignmentMap字段,用法爲:被賦值屬性名1 = 下拉框中的屬性名1,被賦值屬性名2 = 下拉框中的屬性名2。。。當“被賦值屬性名”與“下拉項中的屬性名”一致時,我們可以直接省略“=下拉項中的屬性名”部分。
以上爲本篇博客內容,如有不足之處,歡迎大家給出建議!