json 如何使用jsp创建Jqgrid
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/4014829/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
how to create Jqgrid using jsp
提问by Dhrumil Shah
I am very new in jquery and json.i know jsp and java in my project job i have to implement a data grid same like shows in http://www.trirand.com/blog/jqgrid/jqgrid.html#i this example site i need a datagrid using Json object. i explore all in internet but i cant find any help of that.
我是 jquery 和 json 的新手。我知道在我的项目工作中使用 jsp 和 java 我必须实现一个数据网格,就像http://www.trirand.com/blog/jqgrid/jqgrid.html# 中显示的那样 我这个例子站点我需要一个使用 Json 对象的数据网格。我在互联网上探索了一切,但我找不到任何帮助。
please provide me an example with uses jqgrid json using jsp -servlet
请为我提供一个使用 jsp -servlet 使用 jqgrid json 的示例
回答by Dhrumil Shah
I finally converted the PHP code to jsp code of jqgrid:
最后我把PHP代码转换成jqgrid的jsp代码:
jQuery(document).ready(function()
{
jQuery("#list10").jqGrid({
url:'griddata.jsp',
colNames:['Inv No','Date', 'Client'],
colModel:[{name:'id',index:'id', width:55},{name:'invdate',index:'invdate', width:90},{name:'name',index:'name', width:100}],
rowNum:10,
rowList:[5,7,10],
pager: '#pager10',
sortname: 'id',
datatype: 'json',
viewrecords: true,
sortorder: "desc",
multiselect: false,
imgpath: "themes/basic/images",
caption: "Invoice Header",
onSelectRow: function(ids) {
jQuery("#list10_d").jqGrid().setGridParam({url : 'getsubdata.jsp?id='+ids}).trigger("reloadGrid")
jQuery("#list10_d").jqGrid('setCaption',"Invoice Detail: "+ids)
}
});
jQuery("#list10").jqGrid('navGrid','#pager10',{add:false,edit:false,del:false});
<!-- subgrid start-->
jQuery("#list10_d").jqGrid({
url:'getsubdata.jsp?id=0',
datatype: 'json',
colNames:['No','Item', 'Qty', 'Unit','Line Total'],
colModel:[
{name:'num',index:'num' },
{name:'item',index:'item'},
{name:'qty',index:'qty',align:"center"},
{name:'unit',index:'unit', align:"center"},
{name:'linetotal',index:'linetotal',align:"center", sortable:false, search:false}
],
rowNum:5,
rowList:[5,10,20],
pager: '#pager10_d',
sortname: 'item',
viewrecords: true,
sortorder: "asc",
multiselect: true,
imgpath: "themes/basic/images",
caption:"Invoice Detail"
}).navGrid('#pager10_d',{add:false,edit:false,del:false});
}//function
);//ready
In this code i have created two jsp file .
在这段代码中,我创建了两个 jsp 文件。
First one code is below
第一个代码如下
<%@ page import="java.sql.*,java.util.ArrayList,net.sf.json.*" %>
<%
String rows=request.getParameter("rows");
String pageno=request.getParameter("page");
String cpage=pageno;
Connection connect = null;
Statement statement = null;
PreparedStatement preparedStatement = null;
ResultSet rs= null;
Class.forName("com.mysql.jdbc.Driver").newInstance();
connect = DriverManager.getConnection("jdbc:mysql://localhost/test?user=root&password=root");
statement = connect.createStatement();
rs = statement.executeQuery("SELECT * FROM grid ");
int count=0;
rs.last();
count=rs.getRow();
int pageval=0;
pageval=(count/Integer.parseInt(rows));
int limitstart=0;
limitstart=(Integer.parseInt(rows)*Integer.parseInt(pageno))-Integer.parseInt(rows);
int total=count/Integer.parseInt(rows);
String totalrow=String.valueOf(total+1);
rs = statement.executeQuery("SELECT * FROM grid limit "+limitstart+","+rows);
JSONObject responcedata=new JSONObject();
net.sf.json.JSONArray cellarray=new net.sf.json.JSONArray();
responcedata.put("total",totalrow);
responcedata.put("page",cpage);
responcedata.put("records",count);
net.sf.json.JSONArray cell=new net.sf.json.JSONArray();
net.sf.json.JSONObject cellobj=new net.sf.json.JSONObject();
int i=1;
while(rs.next())
{
cellobj.put("id",rs.getString(1));
cell.add(rs.getString(1));
cell.add(rs.getString(2));
cell.add(rs.getString(3));
cellobj.put("cell",cell);
cell.clear();
cellarray.add(cellobj);
i++;
}
responcedata.put("rows",cellarray);
out.println(responcedata);
%>
And the secound JSP meams getsubdata.jsp file is below:
第二个 JSP meams getsubdata.jsp 文件如下:
<%@ page import="java.sql.*,java.util.ArrayList,net.sf.json.*" %>
<%
String id=request.getParameter("id");
String rows=request.getParameter("rows");
String pageno=request.getParameter("page");
String cpage=pageno;
JSONObject mysubdata=new JSONObject();
JSONArray subarray = new JSONArray();
Connection connect = null;
Statement statement = null;
ResultSet rs= null;
Class.forName("com.mysql.jdbc.Driver").newInstance();
connect = DriverManager.getConnection("jdbc:mysql://localhost/test?user=root&password=root");
statement = connect.createStatement();
rs = statement.executeQuery("SELECT * FROM subgrid where gridid='"+id+"'");
int count=0;
rs.last();
count=rs.getRow();
int pageval=0;
pageval=(count/Integer.parseInt(rows));
int limitstart=0;
limitstart=(Integer.parseInt(rows)*Integer.parseInt(pageno))-Integer.parseInt(rows);
int total=count/Integer.parseInt(rows);
String totalrow=String.valueOf(total+1);
rs = statement.executeQuery("SELECT * FROM subgrid where gridid='"+id+"' limit "+limitstart+","+rows);
JSONObject responcedata=new JSONObject();
net.sf.json.JSONArray cellarray=new net.sf.json.JSONArray();
responcedata.put("total",totalrow);
responcedata.put("page",cpage);
responcedata.put("records",count);
net.sf.json.JSONArray cell=new net.sf.json.JSONArray();
net.sf.json.JSONObject cellobj=new net.sf.json.JSONObject();
int ii=1;
while(rs.next())
{
cellobj.put("id",""+ii);
//cell.add(rs.getString(1));
cell.add(rs.getString(1));
cell.add(rs.getString(2));
cell.add(rs.getString(3));
cell.add(rs.getString(4));
cell.add(rs.getString(4));
cellobj.put("cell",cell);
cell.clear();
cellarray.add(cellobj);
ii++;
}
responcedata.put("rows",cellarray);
out.println(responcedata);
And the secound JSP meams getsubdata.jsp file is below
而第二个 JSP meams getsubdata.jsp 文件在下面
<%@ page import="java.sql.*,java.util.ArrayList,net.sf.json.*" %>
<%
String id=request.getParameter("id");
String rows=request.getParameter("rows");
String pageno=request.getParameter("page");
String cpage=pageno;
JSONObject mysubdata=new JSONObject();
JSONArray subarray = new JSONArray();
Connection connect = null;
Statement statement = null;
ResultSet rs= null;
Class.forName("com.mysql.jdbc.Driver").newInstance();
connect = DriverManager.getConnection("jdbc:mysql://localhost/test?user=root&password=root");
statement = connect.createStatement();
rs = statement.executeQuery("SELECT * FROM subgrid where gridid='"+id+"'");
int count=0;
rs.last();
count=rs.getRow();
int pageval=0;
pageval=(count/Integer.parseInt(rows));
int limitstart=0;
limitstart=(Integer.parseInt(rows)*Integer.parseInt(pageno))-Integer.parseInt(rows);
int total=count/Integer.parseInt(rows);
String totalrow=String.valueOf(total+1);
rs = statement.executeQuery("SELECT * FROM subgrid where gridid='"+id+"' limit "+limitstart+","+rows);
JSONObject responcedata=new JSONObject();
net.sf.json.JSONArray cellarray=new net.sf.json.JSONArray();
responcedata.put("total",totalrow);
responcedata.put("page",cpage);
responcedata.put("records",count);
net.sf.json.JSONArray cell=new net.sf.json.JSONArray();
net.sf.json.JSONObject cellobj=new net.sf.json.JSONObject();
int ii=1;
while(rs.next())
{
cellobj.put("id",""+ii);
//cell.add(rs.getString(1));
cell.add(rs.getString(1));
cell.add(rs.getString(2));
cell.add(rs.getString(3));
cell.add(rs.getString(4));
cell.add(rs.getString(4));
cellobj.put("cell",cell);
cell.clear();
cellarray.add(cellobj);
ii++;
}
responcedata.put("rows",cellarray);
out.println(responcedata);
回答by Gregg
You've really explored the entire internet? Impressive. All the demo's on the jqGrid demo page show the code necessary, even the server side code. You'll simply need to convert their PHP into JSP/Servlet code.
你真的探索过整个互联网吗?感人的。jqGrid 演示页面上的所有演示都显示了必要的代码,甚至是服务器端代码。您只需将他们的 PHP 转换为 JSP/Servlet 代码。

