JAVA代码如下:
response.setContentType("text/xml; charset=UTF-8");
String query = request.getParameter("query");
XS03Service xs03Service = ServiceFactory.getInstance().getXS03Service();
List list = xs03Service.getSalesList(query);
StringBuffer jsonStr = new StringBuffer("");
jsonStr.append("{data:");
jsonStr.append("[\r\n");
for(Iterator iterator=list.iterator();iterator.hasNext();){
AbstractYwSalesmain sales = (AbstractYwSalesmain)iterator.next();
//jsonStr.append("{id:").append("'"+sales.getSalesid()+"',");
jsonStr.append("{salesid:").append("'"+stringNullProcess(sales.getSalesid())+"',");
jsonStr.append("poser:").append("'"+stringNullProcess(sales.getPoser())+"',");
jsonStr.append("netprice:").append(sales.getNetamount()+",");
jsonStr.append("mrsaleprice:").append(floatNullProcess(sales.getMrsaleprice())+",");
jsonStr.append("amount:").append(sales.getAmount()+",");
jsonStr.append("scalar:").append(sales.getScalar()+",");
jsonStr.append("balance:").append(sales.getBalance()+",");
if(iterator.hasNext())
jsonStr.append("updatetime:").append("'"+sales.getUpdatetime()+"'},");
else
jsonStr.append("updatetime:").append("'"+sales.getUpdatetime().toString().substring(0, 10)+"'}");
}
jsonStr.append("\r\n]}");
log.debug(jsonStr);
PrintWriter out = response.getWriter();
out.println(jsonStr.toString());
out.flush();
out.close();
下面是JSP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@page contentType="text/html; charset=utf-8" %>
<%
String query = (String)request.getAttribute("query");
//String returnid = (String)request.getAttribute("returnid");
%>
<br> this.focus();<br> var gridmorebook;<br> Ext.onReady(function(){<br> var proxy=new Ext.data.HttpProxy( {url:'/rmbcs/xs03.op?method=salesList&query=<%=query%>'}); <br> // create the data storenew Ext.data.Store<br> var reader = new Ext.data.JsonReader({<br> // idProperty:'id',<br> fields: [<br> //{name: 'id',type:'string'},<br> {name: 'salesid',type:'string'},<br> {name: 'poser',type:'string'},<br> {name: 'netprice', type: 'string'},<br> {name: 'mrsaleprice', type: 'string'},<br> {name: 'amount', type: 'string'},<br> {name: 'scalar', type: 'string'},<br> {name: 'balance', type: 'string'},<br> {name: 'updatetime', type: 'string'}<br> ]<br> });<br> var store2 = new Ext.data.Store({<br> proxy:proxy,<br> reader:reader<br> });<br> // alert(store2.length());<br> store2.load();<br> alert(store2);<br> // create the Grid<br> gridmorebook = new Ext.grid.GridPanel({<br> //deferRowRender:false,<br> store: store2,<br> columns: [<br> {header: "销售单编号", width: 160, sortable: true, dataIndex: 'salesid',align:'center'},<br> // {id:'salesid',header: "销售单编号", width: 160, dataIndex: 'id',align:'center'},<br> {header: "收银员", width: 120, dataIndex: 'poser',align:'center'},<br> {header: "销售码洋", width: 100, dataIndex: 'netprice',align:'center'},<br> {header: "销售折扣", width: 120, dataIndex: 'mrsaleprice',align:'center'},<br> {header: "销售实洋", width: 100, dataIndex: 'amount',align:'right'},<br> {header: "销售数量", width: 100, dataIndex: 'scalar',align:'right'},<br> {header: "支付方式", width: 80, dataIndex: 'balance',align:'right'},<br> {header: "销售日期", width: 80, dataIndex: 'updatetime',align:'right'}</p> <pre><code> ], height:400, width:860, header: false }); gridmorebook.render('gridDiv2'); /** gridmorebook.store.on("load",function(){ alert(store2.length); gridmorebook.getSelectionModel().selectRow(1); gridmorebook.getSelectionModel().selectFirstRow(); gridmorebook.getView().focusEl.focus(); } )**/ //gridmorebook.getView().focusEl.focus(); /** gridmorebook.on("keydown",function(e){ if(e.keyCode==13){ Ext.Ajax.request({ url: '/rmbcs/xs03.op?method=itemthinsert', success: function(data){ if(data.responseXML.getElementsByTagName("enough")[0].firstChild.data==0){ alert('此商品可退数量不足!'); }else{ parent.grid.getStore().reload(); parent.netamount.value=data.responseXML.getElementsByTagName("netamount")[0].firstChild.data; parent.amount.value=data.responseXML.getElementsByTagName("mianamount")[0].firstChild.data; parent.partid.focus(); parent.partid.select(); } parent.win.destroy(); }, failure: function(data){ alert("false"); }, headers: { 'my-header': 'foo' }, params: { id: gridmorebook.getSelectionModel().getSelected().data.id,scalar:1} }); } })**/ </code></pre> <p>});</p> <p>
后台out的数据怎么不能在前面显示?
[color=red] debug输出如下:
{data:[
{salesid:'2009041509285702',poser:'',netprice:5.0,mrsaleprice:0,amount:5.0,scalar:1,balance:现金支付,updatetime:'2009-04-15'}
]}[/color]
[code="js"]var reader = new Ext.data.JsonReader({
root: 'data',//注意这里
fields: [{
name: 'salesid',
type: 'string'
},
{
name: 'poser',
type: 'string'
},
{
name: 'netprice',
type: 'string'
},
{
name: 'mrsaleprice',
type: 'string'
},
{
name: 'amount',
type: 'string'
},
{
name: 'scalar',
type: 'string'
},
{
name: 'balance',
type: 'string'
},
{
name: 'updatetime',
type: 'string'
}]
});[/code]