"
8.根据条件查询
a.在页面上新建一个查询按钮
[strong>a onclick=""toQuery()"" class=""easyui-linkbutton"" iconCls=""icon-search" 询]
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 ""+
//代码效果参考:https://v.youku.com/v_show/id_XNjQwNjg0MDk0OA==.html
""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列表对象
"