20jqGrid - 主从表格

这个例子展示了两个表格的关系,并且如何实现主从关系。
在这里插入图片描述

HTML代码举例

<html>
  <head>
    <title>jqGrid 实例</title>
  </head>
  <body>
    ···代码省略···
    Invoice Header
    <table id="list10"></table>
    <div id="pager10"></div>
    <br /> Invoice Detail
    <table id="list10_d"></table>
    <div id="pager10_d"></div>
    <a href="javascript:void(0)" id="ms1">Get Selected id's</a>
    ···代码省略···
  </body>
</html>

javascript代码举例

$(function(){
  pageInit();
});
function pageInit(){
  jQuery("#list10").jqGrid(
          {
            url : ctx+'/JSONData',
            datatype : "json",
            colNames : [ 'Inv No', 'Date', 'Client', 'Amount','Tax', 'Total', 'Notes' ],
            colModel : [ 
                         {name : 'id',index : 'id',width : 55}, 
                         {name : 'invdate',index : 'invdate',width : 90}, 
                         {name : 'name',index : 'name',width : 100}, 
                         {name : 'amount',index : 'amount',width : 80,align : "right"}, 
                         {name : 'tax',index : 'tax',width : 80,align : "right"}, 
                         {name : 'total',index : 'total',width : 80,align : "right"}, 
                         {name : 'note',index : 'note',  width : 150,sortable : false} 
                       ],
            rowNum : 10,
            rowList : [ 10, 20, 30 ],
            pager : '#pager10',
            sortname : 'id',
            viewrecords : true,
            sortorder : "desc",
            multiselect : false,
            caption : "Invoice Header",
            onSelectRow : function(ids) {
              if (ids == null) {
                ids = 0;
                if (jQuery("#list10_d").jqGrid('getGridParam',
                    'records') > 0) {
                  jQuery("#list10_d").jqGrid(
                      'setGridParam',
                      {
                        url : ctx+"/SubGrid?q=1&id="
                            + ids,
                        page : 1
                      });
                  jQuery("#list10_d").jqGrid('setCaption',
                      "Invoice Detail: " + ids).trigger(
                      'reloadGrid');
                }
              } else {
                jQuery("#list10_d").jqGrid('setGridParam', {
                  url : ctx+"/SubGrid?q=1&id=" + ids,
                  page : 1
                });
                jQuery("#list10_d").jqGrid('setCaption',
                    "Invoice Detail: " + ids).trigger(
                    'reloadGrid');
              }
            }
          });
  jQuery("#list10").jqGrid('navGrid', '#pager10', {
    add : false,
    edit : false,
    del : false
  });
  jQuery("#list10_d").jqGrid({
    height : 100,
    url : ctx+'/SubGrid?q=1&id=0',
    datatype : "json",
    colNames : [ 'No', 'Item', 'Qty', 'Unit', 'Line Total' ],
    colModel : [ 
                 {name : 'num',index : 'num',width : 55}, 
                 {name : 'item',index : 'item',width : 180}, 
                 {name : 'qty',index : 'qty',width : 80,align : "right"}, 
                 {name : 'unit',index : 'unit',width : 80,align : "right"}, 
                 {name : 'linetotal',index : 'linetotal',width : 80,align : "right",sortable : false,search : false} 
               ],
    rowNum : 5,
    rowList : [ 5, 10, 20 ],
    pager : '#pager10_d',
    sortname : 'item',
    viewrecords : true,
    sortorder : "asc",
    multiselect : true,
    caption : "Invoice Detail"
  }).navGrid('#pager10_d', {
    add : false,
    edit : false,
    del : false
  });
  jQuery("#ms1").click(function() {
    var s;
    s = jQuery("#list10_d").jqGrid('getGridParam', 'selarrrow');
    alert(s);
  });
}

java servlet代码举例

public class JSONData extends HttpServlet {
  private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public JSONData() {
        super();
        // TODO Auto-generated constructor stub
    }

  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException, IOException {
    // TODO Auto-generated method stub
    doPost(req,resp);
  }

  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    String page = request.getParameter("page");
    String jsondata = "{}";
    if("1".equals(page)){
      jsondata = "{\"page\":\"1\"," +
          "      \"total\":2," +
          "      \"records\":\"13\"," +
          "      \"rows\":" +
          "          [" +
          "            {" +
          "              \"id\":\"13\"," +
          "              \"cell\":" +
          "                  [\"13\",\"2007-10-06\",\"Client 3\",\"1000.00\",\"0.00\",\"1000.00\",null]" +
          "            }," +
          "            {" +
          "              \"id\":\"12\"," +
          "              \"cell\":" +
          "                  [\"12\",\"2007-10-06\",\"Client 2\",\"700.00\",\"140.00\",\"840.00\",null]" +
          "            }," +
          "            {" +
          "              \"id\":\"11\"," +
          "              \"cell\":" +
          "                  [\"11\",\"2007-10-06\",\"Client 1\",\"600.00\",\"120.00\",\"720.00\",null]" +
          "            }," +
          "            {" +
          "              \"id\":\"10\"," +
          "              \"cell\":" +
          "                  [\"10\",\"2007-10-06\",\"Client 2\",\"100.00\",\"20.00\",\"120.00\",null]" +
          "            }," +
          "            {" +
          "              \"id\":\"9\"," +
          "              \"cell\":" +
          "                  [\"9\",\"2007-10-06\",\"Client 1\",\"200.00\",\"40.00\",\"240.00\",null]" +
          "            }," +
          "            {" +
          "              \"id\":\"8\"," +
          "              \"cell\":" +
          "                  [\"8\",\"2007-10-06\",\"Client 3\",\"200.00\",\"0.00\",\"200.00\",null]" +
          "            }," +
          "            {" +
          "              \"id\":\"7\"," +
          "              \"cell\":" +
          "                  [\"7\",\"2007-10-05\",\"Client 2\",\"120.00\",\"12.00\",\"134.00\",null]" +
          "            }," +
          "            {" +
          "              \"id\":\"6\"," +
          "              \"cell\":" +
          "                  [\"6\",\"2007-10-05\",\"Client 1\",\"50.00\",\"10.00\",\"60.00\",\"\"]" +
          "            }," +
          "            {" +
          "              \"id\":\"5\"," +
          "              \"cell\":" +
          "                  [\"5\",\"2007-10-05\",\"Client 3\",\"100.00\",\"0.00\",\"100.00\",\"no tax at all\"]" +
          "            }," +
          "            {" +
          "              \"id\":\"4\"," +
          "              \"cell\":" +
          "                  [\"4\",\"2007-10-04\",\"Client 3\",\"150.00\",\"0.00\",\"150.00\",\"no tax\"]" +
          "            }" +
          "          ]," +
          "      \"userdata\":{\"amount\":3220,\"tax\":342,\"total\":3564,\"name\":\"Totals:\"}" +
          "    }";
    }else{
      jsondata = "{" +
          "    \"page\":\"2\"," +
          "    \"total\":2," +
          "    \"records\":\"13\"," +
          "    \"rows\":[" +
          "      {" +
          "        \"id\":\"3\"," +
          "        \"cell\":[\"3\",\"2007-10-02\",\"Client 2\",\"300.00\",\"60.00\",\"360.00\",\"note invoice 3 & and amp test\"]" +
          "      }," +
          "      {" +
          "        \"id\":\"2\"," +
          "        \"cell\":[\"2\",\"2007-10-03\",\"Client 1\",\"200.00\",\"40.00\",\"240.00\",\"note 2\"]" +
          "      }," +
          "      {" +
          "        \"id\":\"1\"," +
          "        \"cell\":[\"1\",\"2007-10-01\",\"Client 1\",\"100.00\",\"20.00\",\"120.00\",\"note 1\"]" +
          "      }" +
          "    ]," +
          "    \"userdata\":{\"amount\":600,\"tax\":120,\"total\":720,\"name\":\"Totals:\"}}";
    }
    response.getWriter().write(jsondata);
  }
}

Detail java servlet代码举例

public class SubGrid extends HttpServlet {
  private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SubGrid() {
        super();
        // TODO Auto-generated constructor stub
    }

  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doPost(request,response);
  }

  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    String id = request.getParameter("id");
    int iId = Integer.parseInt(id);
    String jsondata = "{}";
    switch (iId) {
    case 13:
      jsondata = "{" +
          "    \"page\":\"1\"," +
          "    \"total\":1," +
          "    \"records\":\"1\"," +
          "    \"rows\":[" +
          "      {" +
          "        \"id\":\"1\"," +
          "        \"cell\":[\"1\",\"item 13\",\"1.00\",\"1000.00\",\"1 000.00\"]" +
          "      }" +
          "    ]" +
          "  }";
      break;
    case 12:
      jsondata = "{" +
          "    \"page\":\"1\"," +
          "    \"total\":1," +
          "    \"records\":\"2\"," +
          "    \"rows\":[" +
          "      {" +
          "        \"id\":\"2\"," +
          "        \"cell\":[\"2\",\"item 2\",\"1.00\",\"400.00\",\"400.00\"]" +
          "      }," +
          "      {" +
          "        \"id\":\"1\"," +
          "        \"cell\":[\"1\",\"item 4\",\"1.00\",\"300.00\",\"300.00\"]" +
          "      }" +
          "    ]" +
          "  }";
      break;
    case 11:
      jsondata = "{" +
          "    \"page\":\"1\"," +
          "    \"total\":1," +
          "    \"records\":\"4\"," +
          "    \"rows\":[" +
          "      {" +
          "        \"id\":\"1\"," +
          "        \"cell\":[\"1\",\"item 1\",\"2.00\",\"100.00\",\"200.00\"]" +
          "      }," +
          "      {" +
          "        \"id\":\"2\"," +
          "        \"cell\":[\"2\",\"item 2\",\"3.00\",\"50.00\",\"150.00\"]" +
          "      }," +
          "      {" +
          "        \"id\":\"3\"," +
          "        \"cell\":[\"3\",\"item 3\",\"1.00\",\"50.00\",\"50.00\"]" +
          "      }," +
          "      {" +
          "        \"id\":\"4\"," +
          "        \"cell\":[\"4\",\"item 4\",\"1.00\",\"200.00\",\"200.00\"]" +
          "      }" +
          "    ]" +
          "  }";
      break;
    case 10:
      jsondata = "{" +
          "    \"page\":\"1\"," +
          "    \"total\":1," +
          "    \"records\":\"2\"," +
          "    \"rows\":[" +
          "      {" +
          "        \"id\":\"2\"," +
          "        \"cell\":[\"2\",\"item 4\",\"1.00\",\"70.00\",\"70.00\"]" +
          "      }," +
          "      {" +
          "        \"id\":\"1\"," +
          "        \"cell\":[\"1\",\"item 5\",\"3.00\",\"10.00\",\"30.00\"]" +
          "      }" +
          "    ]" +
          "  }";
      break;
    case 9:
      jsondata = "{" +
          "    \"page\":\"1\"," +
          "    \"total\":1," +
          "    \"records\":\"2\"," +
          "    \"rows\":[" +
          "      {" +
          "        \"id\":\"2\"," +
          "        \"cell\":[\"2\",\"item 3\",\"1.00\",\"60.00\",\"60.00\"]" +
          "      }," +
          "      {" +
          "        \"id\":\"1\"," +
          "        \"cell\":[\"1\",\"item 6\",\"1.00\",\"140.00\",\"140.00\"]" +
          "      }" +
          "    ]" +
          "  }";
      break;
    case 8:
      jsondata = "{" +
          "    \"page\":\"1\"," +
          "    \"total\":1," +
          "    \"records\":\"3\"," +
          "    \"rows\":[" +
          "      {" +
          "        \"id\":\"2\"," +
          "        \"cell\":[\"2\",\"item 2\",\"1.00\",\"120.00\",\"120.00\"]" +
          "      }," +
          "      {" +
          "        \"id\":\"1\"," +
          "        \"cell\":[\"1\",\"item 3\",\"1.00\",\"50.00\",\"50.00\"]" +
          "      }," +
          "      {" +
          "        \"id\":\"3\"," +
          "        \"cell\":[\"3\",\"item 3\",\"1.00\",\"30.00\",\"30.00\"]" +
          "      }" +
          "    ]" +
          "  }";
      break;
    case 7:
      jsondata = "{" +
          "    \"page\":\"1\"," +
          "    \"total\":1," +
          "    \"records\":\"2\"," +
          "    \"rows\":[" +
          "      {" +
          "        \"id\":\"2\"," +
          "        \"cell\":[\"2\",\"item 1\",\"1.00\",\"100.00\",\"100.00\"]" +
          "      }," +
          "      {" +
          "        \"id\":\"1\"," +
          "        \"cell\":[\"1\",\"item 5\",\"2.00\",\"10.00\",\"20.00\"]" +
          "      }" +
          "    ]" +
          "  }";
      break;
    case 6:
      jsondata = "{" +
          "    \"page\":\"1\"," +
          "    \"total\":1," +
          "    \"records\":\"1\"," +
          "    \"rows\":[" +
          "      {" +
          "        \"id\":\"1\"," +
          "        \"cell\":[\"1\",\"item 4\",\"1.00\",\"50.00\",\"50.00\"]" +
          "      }" +
          "    ]" +
          "  }";
      break;
    case 5:
      jsondata = "{" +
          "    \"page\":\"1\"," +
          "    \"total\":1," +
          "    \"records\":\"1\"," +
          "    \"rows\":[" +
          "      {" +
          "        \"id\":\"1\"," +
          "        \"cell\":[\"1\",\"item 3\",\"1.00\",\"100.00\",\"100.00\"]" +
          "      }" +
          "    ]" +
          "  }";
      break;
    case 4:
      jsondata = "{" +
          "    \"page\":\"1\"," +
          "    \"total\":1," +
          "    \"records\":\"2\"," +
          "    \"rows\":[" +
          "      {" +
          "        \"id\":\"1\"," +
          "        \"cell\":[\"1\",\"item 1\",\"1.00\",\"100.00\",\"100.00\"]" +
          "      }," +
          "      {" +
          "        \"id\":\"2\"," +
          "        \"cell\":[\"2\",\"item 2\",\"1.00\",\"50.00\",\"50.00\"]" +
          "      }" +
          "    ]" +
          "  }";
      break;
    case 3:
      jsondata = "{" +
          "    \"page\":\"1\"," +
          "    \"total\":1," +
          "    \"records\":\"2\"," +
          "    \"rows\":[" +
          "      {" +
          "        \"id\":\"1\"," +
          "        \"cell\":[\"1\",\"item 3\",\"1.00\",\"100.00\",\"100.00\"]" +
          "      }," +
          "      {" +
          "        \"id\":\"2\"," +
          "        \"cell\":[\"2\",\"item 4\",\"1.00\",\"200.00\",\"200.00\"]" +
          "      }" +
          "    ]" +
          "  }";
      break;
    case 2:
      jsondata = "{" +
          "    \"page\":\"1\"," +
          "    \"total\":1," +
          "    \"records\":\"2\"," +
          "    \"rows\":[" +
          "      {" +
          "        \"id\":\"1\"," +
          "        \"cell\":[\"1\",\"item 1\",\"2.00\",\"20.00\",\"40.00\"]" +
          "      }," +
          "      {" +
          "        \"id\":\"2\"," +
          "        \"cell\":[\"2\",\"item 2\",\"4.00\",\"40.00\",\"160.00\"]" +
          "      }" +
          "    ]" +
          "  }";
      break;
    case 1:
      jsondata = "{" +
          "    \"page\":\"1\"," +
          "    \"total\":1," +
          "    \"records\":\"2\"," +
          "    \"rows\":[" +
          "      {" +
          "        \"id\":\"1\"," +
          "        \"cell\":[\"1\",\"item 1\",\"1.00\",\"20.00\",\"20.00\"]" +
          "      }," +
          "      {" +
          "        \"id\":\"2\"," +
          "        \"cell\":[\"2\",\"item 2\",\"2.00\",\"40.00\",\"80.00\"]" +
          "      }" +
          "    ]" +
          "  }";
      break;
    default:
      break;
    }
    
    response.getWriter().write(jsondata);
    
  }

}
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下步骤设置 jqGrid 表格样式: 1. 引入 jqGrid 插件和样式文件。 ``` <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqgrid/5.4.0/css/ui.jqgrid.min.css" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/jqgrid/5.4.0/js/jquery.jqgrid.min.js"></script> ``` 2. 在 HTML 页面中添加一个 div 元素作为表格容器。 ``` <div id="grid"></div> ``` 3. 使用 JavaScript 代码初始化 jqGrid 表格并设置样式。 ``` $(function(){ $("#grid").jqGrid({ url: "data.json", datatype: "json", colModel: [ { name: "id", label: "ID", width: 50 }, { name: "name", label: "Name", width: 150 }, { name: "age", label: "Age", width: 50 }, { name: "address", label: "Address", width: 200 } ], rowNum: 10, rowList: [10, 20, 30], pager: "#pager", sortname: "id", viewrecords: true, sortorder: "asc", caption: "Sample Grid" }); $("#grid").jqGrid("navGrid", "#pager", { edit: false, add: false, del: false }); }); ``` 4. 在 CSS 文件中添加样式。 ``` .ui-jqgrid { font-size: 14px; } .ui-jqgrid tr.jqgrow td { padding: 5px; } .ui-jqgrid .ui-jqgrid-hdiv { background-color: #f2f2f2; } .ui-jqgrid .ui-jqgrid-btable { border-collapse: separate; border-spacing: 0px; } .ui-jqgrid .ui-jqgrid-pager { background-color: #f2f2f2; border-top: none; } .ui-jqgrid .ui-jqgrid-pager .ui-pg-table { margin: 0; } .ui-jqgrid .ui-jqgrid-pager .ui-pg-table .ui-pg-button { border: none; margin: 0 5px; } .ui-jqgrid .ui-jqgrid-pager .ui-pg-table .ui-pg-button:hover { background-color: #e6e6e6; } ``` 注意:样式文件中的样式可以根据需要进行修改,以上只是一个示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值