要实现jqgrid的自定义查询可通过表格获取查询的条件,再给jqgrid表格发送postData参数。
HTML:
<table id="querytable" border="0" cellspacing="0" cellpadding="0" class="table"> <tr> <td> <label>性别:</label> </td> <td> <select id="sex" name="sex"> <option value="1">男</option> <option value="2">女</option> </select> </td> </tr> <tr> <td> <label>部门</label> </td> <td> <input type="text" id="department" name="department"> </td> </tr> </table>
Js:
$("#find").click(function () { var queryParams = jgGrid.getGridParam(); //取到jqgrid的参数 queryParams["postData"].params = $("#querytable").formobj(); //把查询条件表格的数据给过去 $("#list2").jqGrid('setGridParam', { //jqgrid表格执行方法把条件参数传过去 datatype:'json' , postData:queryParams }).trigger('reloadGrid'); //刷新表格 });
这样写了之后,还得在sql语句中加入if判断:
<select id="selectAll" parameterType="java.lang.Object" resultType="java.util.Map"> select name,sex,age,department from user <where><if test="params.sex!=null and params.sex!=''"> AND sex like '%'||#{params.sex}||'%' </if> <if test="params.department!=null and params.department!=''"> AND department like '%'||#{params.department}||'%' </if> </where> </select>
即可。