Реализовать функцию поиска без встроенных функций с применением динамического поля выбора в jqgrid - PullRequest
0 голосов
/ 15 мая 2019

Я хочу реализовать кнопку поиска без встроенных функций на jqgrid.Я применяю динамическое поле выбора, но оно не работает.

У меня есть два вопроса.Во-первых, сравнить ли динамическое поле выбора и столбец colmodel?Во-вторых, я отправляю правильные параметры моему контроллеру Java?Я уже использую postData.

Наконец, я хочу загрузить строки с помощью окна динамического выбора.

$(function() {
  $("#jqGrid").jqGrid({
    url: "<c:url value='memberList.do'/>",
    datatype: "local",
    colModel: [{
      label: "mbrNo",
      name: "mbrNo",
      width: 200,
    },{
      label: "name",
      name: "mbrNm",
      width: 400,
    },{
      label: "loginID",
      name: "loginId",
      width: 400,
    },{
      label: "mbrCndCd",
      name: "mbrCndNm",
      width: 400,
    },{
      label: "mbrGrdCd",
      name: "mbrGrdNm",
      width: 400,
    }],
    height: "780",
    autowidth: true,
    rownumbers: true,
    pager: "#jqGridPager",
    rowNum: 10,
    rowList: [10, 20, 30],
    goSearch: function() {
      var mbrCnd = $("#mbrCnd option:selected").val();
      var mbrGrd = $("#mbrGrd option:selected").val();
      console.log("mbrCnd : ", mbrCnd);
      console.log("mbrGrd : ", mbrGrd);

      $("#jqGrid").setGridParam({
        datatype: "json",
        mtype: "GET",
        postData: {
          mbrCnd: function() {
            return $("#mbrCnd option:selected").val();
          },
          mbrGrd: function() {
            return $("#mbrGrd option:selected").val();
          }
        },
        loadComplete: function(data) {
          console.log("data", data);
        }
      }).trigger("reloadGrid");
<tr>
  <td scope="row" colspan="3">
    <select id="mbrCnd" name="mbrCnd">
      <c:forEach items="${mbrCndList}" var="mbrCndList">
        <option value="<c:out value='${mbrCndList.cmmCdNm }'/>
          <c:out value='${mbrCndList.cmmCdNm }'/>
        </option>
      </c:forEach>
    </select>               
  </td>
</tr>
<tr>
  <td scope="row" colspan="3">
    <select id="mbrGrd" name="mbrGrd">
      <c:forEach items="${mbrGrdList}" var="mbrGrdList">
        <option value="<c:out value='${mbrGrdList.cmmCdNm }'/>
          <c:out value='${mbrGrdList.cmmCdNm }'/>
        </option>
      </c:forEach>
    </select>
  </td>
</tr>
@RequestMapping(value = "/selectMember.do")
public String selectMember(ModelMap model) 
{
  List<EgovMap> mbrCndList = memberService.selectMbrCnd();
  model.addAttribute("mbrCndList", mbrCndList);

  List<EgovMap> mbrGrdList = memberService.selectMbrGrd();
  model.addAttribute("mbrGrdList", mbrGrdList);

  return "member/mbrList";
}

@RequestMapping(value="memberList.do", produces="application/json; charset=utf-8")
@ResponseBody
public String memberList(@RequestParam Map<String, Object> map,
        @RequestParam List<String> mbrCnd,
        @RequestParam List<String> mbrGrd) 
{
  List<EgovMap> mbrList = memberService.selectMbrList(map);
  System.out.println("##mbrList :" + mbrList);

  Map<String, Object> resMap = new HashMap<String, Object>();

  resMap.put("rows", mbrList);
  resMap.put("page", map.get("page"));
  resMap.put("total", mbrList.get(0).get("totalPage"));
  resMap.put("records", mbrList.get(0).get("totalCnt"));

  return JsonUtil.MapToJson(resMap);
}

Кроме того, я использую три сопоставителя.Один связан с jqGrid, другой код связан с полем динамического выбора.Это один и тот же код.Только параметр одинаков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...