Dorado7的初次使用

Dorado7初体验
第一个任务:写一个敏感词监控界面,增删改查,Grid显示三个字段,需要分页,服务器端筛选,数据导出excel等:

1.新建Dorado7视图文件

 2.点击next

3.输入视图名称,点击finish

4. 右击view,新增splitpanel(因为有搜索条件所以采用splitpanel,正常展示显示panel),点击
SpiltPanel右侧显示属性栏,找到direction属性选择top(上下分层展示)

 

5.右击MainPanel插入panel,caption属性panel名称,结构层次如下

 

6.在Children下新增DataGrid,并且在grid下新增DataColumn显示字段,每个字段的name、property属性的value应该一致,visiable(不可见)属性应该选择false

 

 7.由于页面展示需要后端提供数据,所以要在model层新建一个model,用来接受数据库中表字段并且用于绑定DataGrid作为显示字段,右击Model,新建DataType,右侧属性栏中name是当前model名称,creationType是数据库中表生成的实体文件路径

 

 8.GridData与Model都已经准备好,下面需要写一个向后台索取数据的方法
右击View,新增一条DataSet,右侧属性栏中
id是dataset该dataset的名称,
dataProvider是向后台请求的路径
dataKeyWorld是后台数据的载体,也就是步骤7中model

9.GridData调用dataSet
GridData右侧属性栏dataSet的value为步骤8中dataSet的id

10.分页:在Children目录下新增toolbar作为分页导航栏,在该toolbar目录下新增DataPilot分页有侧属性栏dataSet还是步骤8新增的dataSet,itemCodes为pages(如果需要添加其他功能可用,分开,例如:pages,+,-),并且需要将步骤6中dataGrid的pagesize设置为一页显示的数据数量
 

11.新增controller作为步骤8中的接收点获取数据,通过注解的方式,进入后台

12.Service层用参数page进行返回
示例代码如下:

public void loadSensitiveKeyWord(Page<SensitiveKeyWord> page){
		final int pageNo = page.getPageNo();
		final int pageSize = page.getPageSize();
		BigInteger count = this.doInHibernateSession(new ISessionCallback<BigInteger>() {
			public BigInteger doInSession(Session session) {
				// TODO Auto-generated method stub
				String countSql = "SELECT COUNT(id) FROM shield_names";
				BigInteger count = (BigInteger) session.createSQLQuery(countSql).uniqueResult();
				return count;
			}
		});
		List<SensitiveKeyWord> list = this.doInHibernateSession(new ISessionCallback<List<SensitiveKeyWord>>() {
			@SuppressWarnings("unchecked")
			public List<SensitiveKeyWord> doInSession(Session session) {
				// TODO Auto-generated method stub
				String sql = "SELECT * FROM shield_names LIMIT "+(pageNo-1)*pageSize+","+pageSize;
				return session.createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(SensitiveKeyWord.class)).list();
			}
		});
		page.setEntityCount(count.intValue());
		page.setEntities(list);
	}

13.数据筛选:
步骤6中GridDate的属性:showFilterBar设置为true,filterMode设置有下两种选择:
clientSide客户端筛选:优点:速度快(无需访问后台)、弊端:只能筛选当前页,数据不全面
serverSide服务器端筛选:优点:查询数据库,数据有效性高,数据全面、弊端需要访问后台,增加代码量。
服务器筛选:Controller层方法参数栏用final Criteria criteria进行接收。
Criteria生成sql(自写,性能很差)

`//前端服务器筛选条件生成sql 
	//语句格式  name like "% %" and times like "% %"
	public String createSqlByServerFilterModel(Criteria criteria){
		String queryForm="";
		ParseResult result = this.parseCriteria(criteria, false,"");
		if (result != null) {
			Map<String, Object> map = result.getValueMap();
			map.keySet();
			for(String key : map.keySet()){
				int leng=key.indexOf("_");
				queryForm += key.substring(0,leng)+" like '"+(String) map.get(key)+"' and ";
			}
			queryForm=queryForm.substring(0,queryForm.length()-4);
		}
		return queryForm;		
	}` 
14. 导出功能

在步骤10中建的toolbar目录下,新建一个toolbarbutton按钮,右侧属性栏中Caption为按钮名称,icon为样式,右侧属性栏的左侧有闪电标志,双击onclick(点击)事件,进入编写页面 

//获取dataset数据
var ds = view.get("#DataSet的Id").getData("#");
if(ds){
	//调用exportExcelAction方法
	var exportAction = view.get("#exportExcelAction");
	exportAction.execute();
}

15.增删改功能(使用dialog弹出框)
在Children目录下新建dialog,右侧属性width和height赋适当值,编辑onReady事件

self.hideMe = function() {
    //获取数据
	var data = view.id("DataSet的id").getData("#");
    if (data && data.isDirty()) {
         //弹出层确认框
        dorado.MessageBox.confirm("${res["common/zdyqxdqczm"]}", function(){
            data.cancel();
            self.hide();
        })
    } else {
        self.hide();
        //刷新页面
		view.get("#DataSet的id").flushAsync();
    }
}


在步骤10中建的toolbar目录下,新建一个toolbarbutton按钮,caption为编辑(${res[“common/Edit”]}),编辑onclick事件

//弹出dialog层
view.get("#Dialog的id").show();

增删
在步骤10中新增的分页控件右侧属性中,itemCodes设置为pages,+,- 其中 pages是分页,+是新增按钮,-是删除按钮,编辑它的onSubControlAction事件

//获取itemCodes的设置内容
var code=arg.code;
if(code=="+"){
   //新增页面
	view.get("#dialog的id").show();
}else if(code=="-"){
  //删除
	var allData = view.get("#DataSet的Id").getData();
	var action = view.get("#后端方法名称");
	if(allData.current){
		var options = {
            callback: function(){
                allData.remove();
                action.execute();
            },
			icon : "WARNING",
			title : "${res["common/qrsc"]}"
        }
        dorado.MessageBox.confirm("${res["common/nzdxscdqxxm"]}", options);
	}
	arg.processDefault = false;
}

16.搜索框
在SideControl新增panel(如步骤五),在children中新增AutoForm作为搜索栏,新增AutoFormElement作为搜索框,右侧属性label是搜索框名称,name和property为后台方法的参数。
在该路径下新增button,编辑onclick事件

var ds = view.get("#DataSet的id");
//获取当前搜索框的内容
var query = view.get("#AutoForm的id").get("entity");
var name = "";
if(query.get("name")){
	name = query.get("name");
}
//将搜索框的内容作为parameter到后台查询
ds.set("parameter",{
	name : name
});
//刷新ds的数据
ds.flushAsync();

一个简单的Dorado7的增删改查、分页、导出、数据筛选就完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

z.jiaminf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值