sunqiusong 2009-04-28 11:23
浏览 195
已采纳

ext无法显示后台的json数据(急)

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:&#39;/rmbcs/xs03.op?method=salesList&amp;query=&lt;%=query%&gt;&#39;}); <br> // create the data storenew Ext.data.Store<br> var reader = new Ext.data.JsonReader({<br> // idProperty:&#39;id&#39;,<br> fields: [<br> //{name: &#39;id&#39;,type:&#39;string&#39;},<br> {name: &#39;salesid&#39;,type:&#39;string&#39;},<br> {name: &#39;poser&#39;,type:&#39;string&#39;},<br> {name: &#39;netprice&#39;, type: &#39;string&#39;},<br> {name: &#39;mrsaleprice&#39;, type: &#39;string&#39;},<br> {name: &#39;amount&#39;, type: &#39;string&#39;},<br> {name: &#39;scalar&#39;, type: &#39;string&#39;},<br> {name: &#39;balance&#39;, type: &#39;string&#39;},<br> {name: &#39;updatetime&#39;, type: &#39;string&#39;}<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: &quot;销售单编号&quot;, width: 160, sortable: true, dataIndex: &#39;salesid&#39;,align:&#39;center&#39;},<br> // {id:&#39;salesid&#39;,header: &quot;销售单编号&quot;, width: 160, dataIndex: &#39;id&#39;,align:&#39;center&#39;},<br> {header: &quot;收银员&quot;, width: 120, dataIndex: &#39;poser&#39;,align:&#39;center&#39;},<br> {header: &quot;销售码洋&quot;, width: 100, dataIndex: &#39;netprice&#39;,align:&#39;center&#39;},<br> {header: &quot;销售折扣&quot;, width: 120, dataIndex: &#39;mrsaleprice&#39;,align:&#39;center&#39;},<br> {header: &quot;销售实洋&quot;, width: 100, dataIndex: &#39;amount&#39;,align:&#39;right&#39;},<br> {header: &quot;销售数量&quot;, width: 100, dataIndex: &#39;scalar&#39;,align:&#39;right&#39;},<br> {header: &quot;支付方式&quot;, width: 80, dataIndex: &#39;balance&#39;,align:&#39;right&#39;},<br> {header: &quot;销售日期&quot;, width: 80, dataIndex: &#39;updatetime&#39;,align:&#39;right&#39;}</p> <pre><code> ], height:400, width:860, header: false }); gridmorebook.render(&#39;gridDiv2&#39;); /** gridmorebook.store.on(&quot;load&quot;,function(){ alert(store2.length); gridmorebook.getSelectionModel().selectRow(1); gridmorebook.getSelectionModel().selectFirstRow(); gridmorebook.getView().focusEl.focus(); } )**/ //gridmorebook.getView().focusEl.focus(); /** gridmorebook.on(&quot;keydown&quot;,function(e){ if(e.keyCode==13){ Ext.Ajax.request({ url: &#39;/rmbcs/xs03.op?method=itemthinsert&#39;, success: function(data){ if(data.responseXML.getElementsByTagName(&quot;enough&quot;)[0].firstChild.data==0){ alert(&#39;此商品可退数量不足!&#39;); }else{ parent.grid.getStore().reload(); parent.netamount.value=data.responseXML.getElementsByTagName(&quot;netamount&quot;)[0].firstChild.data; parent.amount.value=data.responseXML.getElementsByTagName(&quot;mianamount&quot;)[0].firstChild.data; parent.partid.focus(); parent.partid.select(); } parent.win.destroy(); }, failure: function(data){ alert(&quot;false&quot;); }, headers: { &#39;my-header&#39;: &#39;foo&#39; }, 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]

  • 写回答

1条回答 默认 最新

  • zhoujuan520 2009-04-28 12:53
    关注

    [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]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示