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 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型