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列表对象