8.根據條件查詢
a.在頁面上新建一個查詢按鈕
<a onclick="toQuery()" class="easyui-linkbutton" iconCls="icon-search">查詢</a>
b.在JavaScript中寫一個查詢按鈕的觸發事件
//查詢
function toQuery(){
var searchName = encodeURI($("#ss").textbox("getValue"));
var json={name:searchName,depid:depid};
var paramStr=json2str(json)
$('#listTable').datagrid('options').url = "queryDaKuaiSuByParams.hebe?json=" + paramStr;
$('#listTable').datagrid('load');
}
值得注意的是:此處查詢會有兩種情況:一是當沒有點擊樹的節點時候的查詢,此時depid會沒有值,則會查詢表中的所有數據,二是當點擊了樹的節點時候的查詢,此時的depid會有值傳到后台,則會查詢該樹節點下的相關條件數據,因此后台也需要進行判斷
c..根據URL地址編寫getwaybeans.xml
d.后台方法的寫法
有兩種方式來寫
一,通過XML文件配置SQL語句來寫
public String queryDaKuaiSuByParams(String param){
String name = JSON_UTIL.getJsonData(param, "name");
String depid=JSON_UTIL.getJsonData(param,"depid");
//分情況判斷
String[] p=null;
if((depid==null || depid.equals(""))){
p =new String[] {BaseUtils.likeParamter(name)};
queryMapId = "query.student.by.name";
}else{
p =new String[]{depid,BaseUtils.likeParamter(name)};
queryMapId="query.student.by.idandname";
}
return paging(p, true);
}
值得注意的是:此時就判斷depid是否存在值,此時不需管name值,因為名稱是模糊查詢,所以就算name沒有值,在AQL語句中也是為null,當做沒值的來查詢
此時在XML文件中需要寫兩種情況的SQ語句
二.在后台通過SQL語句拼接,不用寫XML文件配置
public String queryDaKuaiSuByParams(String param){
String name = JSON_UTIL.getJsonData(param, "name");
String depid=JSON_UTIL.getJsonData(param,"depid");
String sql= "select s.sno,s.name,s.birthday,s.createtime,s.sex,s.depid,s.loginname,d.depname "+
"from t_student s, t_department d where s.depid = d.id" ;
if(!name.equals("")){
sql += " and s.name like '%" + name + "%'";
}
if(!depid.equals("")){
sql += " and s.depid=" + depid;
}
sql += " order by d.id";
return pagingByQuery(sql);
}
值得注意的是:對於有多種情況判斷的后台,sql語句不唯一的時候,建議用sql語句拼接,不要用XML文件配置,這樣可以省去寫多個配置文件。
9.重置
a.先新建一個重置按鈕與寫一個其觸發事件
b.此處重置不需要另寫后台代碼,可以直接調用查詢顯示的方法。但需要清空所有相關的查詢條件
值得注意的是:也可以直接調用默認列表顯示的方法,但建議最好調用查詢顯示的方法,這樣的話,就不用再創一個datagrid列表對象