1. 程式人生 > >搭建ERP(條件查詢)

搭建ERP(條件查詢)

1、條件查詢採用離線條件查詢的方法

/**
	 * 條件查詢
	 */
	public List<Dep> getList(Dep dep1) {
		DetachedCriteria dc = DetachedCriteria.forClass(Dep.class);
		if(null != dep1) {
			//是否輸入部門名稱
			if(null != dep1.getName() && dep1.getName().trim().length() > 0) {
				//MatchMode.ANYWHERE 任意位置匹配
				//MatchMode.END      結尾匹配
				//MatchMode.START    開始匹配
				dc.add(Restrictions.like("name", dep1.getName(),MatchMode.ANYWHERE));
			}
			//是否輸入部門的電話
			if(null != dep1.getTele() && dep1.getTele().trim().length() > 0) {
				//MatchMode.ANYWHERE 任意位置匹配
				//MatchMode.END      結尾匹配
				//MatchMode.START    開始匹配
				dc.add(Restrictions.like("tele", dep1.getTele(),MatchMode.ANYWHERE));
			}
		}
		return  (List<Dep>) this.getHibernateTemplate().findByCriteria(dc);
	}

2、採用jquery.serializejson.js外掛將查詢表單資料轉化為JSON物件。注意引入js

        //繫結點選事件
		$('#btnSearch').bind('click', function() {
			//將查詢表單資料轉為JSON物件
			var formData = $('#searchForm').serializeJSON();
			//把json物件轉為字串
			alert(JSON.stringify(formData));
		});

3、 第一種:利用ajax將已經轉為json物件的form表單資料傳送到後端,並回調資料

            //利用AJAX提交JSON物件資料
			$.ajax({
				url:'dep_getList',//將資料提交到該地址(action中的方法)
				data:formData,    //資料來源
				dataType:'json',   //資料格式
				type:'post',      //資料提交方法
				//成功後返回查詢到的json物件
				success:function(rtn) {
					//grid載入資料
                    $('#grid').datagrid('loadData',rtn);
				}
			});

      第二種:

//繫結點選事件
		$('#btnSearch').bind('click', function() {
			//將查詢表單資料轉為JSON物件
			var formData = $('#searchForm').serializeJSON();
			//將資料傳入通過ajax傳入後端並回調資料,url預設使用前面#grid指定的url			
			$('#grid').datagrid('load',formData);
			
		});

4、整個實現程式碼如下:

<!-- 將dep_list方法查詢到的資料通過JSON返回到頁面(採用了easyUI回顯表格資料的方法) -->
<script type="text/javascript">
	$(function() {
		//grid是要顯示資料的id
		$('#grid').datagrid({
			//dep_list是獲取JSON資料的url(本文中是action頁面中的一個方法)
			url : 'dep_getList',
			columns : [ [ {
				field : 'uuid',
				title : '部門編碼',
				width : 100
			}, {
				field : 'name',
				title : '部門名稱',
				width : 100
			}, {
				field : 'tele',
				title : '聯絡電話',
				width : 100,
				align : 'right'
			} ] ]
		});
		
		//繫結點選事件
		$('#btnSearch').bind('click', function() {
			//將查詢表單資料轉為JSON物件
			var formData = $('#searchForm').serializeJSON();
			//將資料傳入通過ajax傳入後端並回調資料,url預設使用前面#grid指定的url			
			$('#grid').datagrid('load',formData);
			
			/* 整個這段程式碼等同於$('#grid').datagrid('load',formData);
			//利用AJAX提交JSON物件資料
			$.ajax({
				url:'dep_getList',//將資料提交到該地址(action中的方法)
				data:formData,    //資料來源
				dataType:'json',   //資料格式
				type:'post',      //資料提交方法
				//成功後返回查詢到的json物件
				success:function(rtn) {
					//grid載入資料
					//可以理解為:grid物件的datagrid方法,該方法需要兩個引數,第一個為loadData方法,第二個為rtn
					$('#grid').datagrid('loadData',rtn);
				}
			}); */
			
		});
	});
	
</script>