Dorado7 自定義下拉框(二)

本篇對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。。。當“被賦值屬性名”與“下拉項中的屬性名”一致時,我們可以直接省略“=下拉項中的屬性名”部分

以上爲本篇博客內容,如有不足之處,歡迎大家給出建議!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章