store.load();
grid.render();
有这两个方法么

解决方案 »

  1.   

    这种问题通常是因为没有指定root或者dataIndex的问题
      

  2.   

    修改成你的,响应数据是下面的,还是出不来。
    [[1,"组织部",0,"123456","组织活动"],[9,"国防部",null,"3424324","左苦瓜 "],[10,"卫生部",null,"323432432","载体"],[11,"因为",null,"243243","天文学博士"],[12,"书展",null,"232","天文学博士"],[13,"中国队",null,"12121212","中国人哦"],[14,"中国队",null,"12121212","中国人哦"],[15,"五金",null,"322432","磦"]]
      

  3.   

    之前配置过root,dataIndex,也没出来。这你是怎么配置的。
      

  4.   

    现在我做的自认为成熟且保险的方案是给数据块指定一个名称。另外返回时不需要特意指定是JSON  我从来使用的是TEXT  你这种情况好像得使用 root:'.'  很久没有直接给个数组的情况了,忘了。dataIndex大多也是因为大小写,缺失或多出字母的问题。另外autoLoad我也不怎么放在reader里。
      

  5.   

    你json改用数组就要 ArrayReader了
    我的代码 测试过 可以的
      

  6.   

    {"data":[{"barcode":"23BR1445","brand":"AMICO","code":"608","productName":"黄铜闸阀","feature":"DN20","price":"15.6","quantity":"5","total":"78","serialNumber":"c80d5c62-a5ce-8d16-233a-0ea7a2745bd6"},{"barcode":"KKAN","brand":"AMICO","code":"484","productName":"黄铜球阀","feature":"DN50","price":"89.7","quantity":"8","total":"717.6","serialNumber":"c80d5c62-a5ce-8d16-233a-0ea7a2745bd6"},{"barcode":"HAN","brand":"AMICO","code":"645","productName":"黄铜截止阀","feature":"DN150","price":"1280","quantity":"3","total":"3840","serialNumber":"ab18a124-9b74-e99d-6c21-d292f9b48b5c"},{"barcode":"319349413","brand":"AMICO","code":"302","productName":"黄铜截止阀","feature":"DN80","price":"1500","quantity":"2","total":"3000","serialNumber":"ab18a124-9b74-e99d-6c21-d292f9b48b5c"},{"barcode":"A","brand":"AMICO","code":"101","productName":"黄铜闸阀","feature":"DN8","price":"13.8","quantity":"1","total":"16.56","sequenceNumber":"6e03f5c8-cc33-f86e-073b-38aa903d858f","serialNumber":"48485879-b1d5-96ce-cd94-afaca4f60ed1","ratio":"1.2","salePrice":"16.56"},{"barcode":"B","brand":"AMICO","code":"101","productName":"黄铜闸阀","feature":"DN10","price":"13.8","quantity":"1","total":"16.56","sequenceNumber":"7a7ec2b1-14be-74df-e743-f55044fff03e","serialNumber":"48485879-b1d5-96ce-cd94-afaca4f60ed1","ratio":"1.2","salePrice":"16.56"},{"barcode":"A","brand":"AMICO","code":"101","productName":"黄铜闸阀","feature":"DN8","price":"13.8","quantity":"1","total":"16.56","sequenceNumber":"3b0aef70-f793-11b5-5c3a-76afbbea918f","serialNumber":"d80a3bc3-c572-759d-bdee-01dd52506deb","ratio":"1.2","salePrice":"16.56"},{"barcode":"B","brand":"AMICO","code":"101","productName":"黄铜闸阀","feature":"DN10","price":"13.8","quantity":"1","total":"16.56","sequenceNumber":"6d87e5e1-d453-6921-5bea-f17456f738c5","serialNumber":"d80a3bc3-c572-759d-bdee-01dd52506deb","ratio":"1.2","salePrice":"16.56"},{"barcode":"C","brand":"AMICO","code":"101","productName":"黄铜闸阀","feature":"DN15","price":"18.1","quantity":"1","total":"21.72","sequenceNumber":"ea89c1f1-b3f3-1532-a423-4e154b348642","serialNumber":"d80a3bc3-c572-759d-bdee-01dd52506deb","ratio":"1.2","salePrice":"21.72"},{"barcode":"C","brand":"AMICO","code":"101","productName":"黄铜闸阀","feature":"DN15","price":"18.1","quantity":"1","total":"21.72","sequenceNumber":"e88c79e7-0890-b9b9-b078-9aaf91801ad2","serialNumber":"d3bb0aa8-ee08-99b4-10b6-c24133a4462e","ratio":"1.2","salePrice":"21.72"},{"barcode":"D","brand":"AMICO","code":"101","productName":"黄铜闸阀","feature":"DN20","price":"25.1","quantity":"1","total":"30.12","sequenceNumber":"9b857105-c88a-0a6e-4564-c5b4fbc9d3de","serialNumber":"d3bb0aa8-ee08-99b4-10b6-c24133a4462e","ratio":"1.2","salePrice":"30.12"},{"barcode":"E","brand":"AMICO","code":"101","productName":"黄铜闸阀","feature":"DN25","price":"32.9","quantity":"1","total":"39.48","sequenceNumber":"73f575a6-b4fc-125e-6a6a-5a7376c7f76d","serialNumber":"d3bb0aa8-ee08-99b4-10b6-c24133a4462e","ratio":"1.2","salePrice":"39.48"},{"barcode":"H","brand":"AMICO","code":"101","productName":"黄铜闸阀","feature":"DN50","price":"88.4","quantity":"1","total":"106.08","sequenceNumber":"c0f9d361-323b-17a9-6d1d-b35c2a1d0093","serialNumber":"d3bb0aa8-ee08-99b4-10b6-c24133a4462e","ratio":"1.2","salePrice":"106.08"},{"barcode":"G","brand":"AMICO","code":"101","productName":"黄铜闸阀","feature":"DN40","price":"59.8","quantity":"1","total":"71.76","sequenceNumber":"6716c7ed-4fdc-1bea-f611-bf96c7535819","serialNumber":"d3bb0aa8-ee08-99b4-10b6-c24133a4462e","ratio":"1.2","salePrice":"71.76"}],"total":14,"result":true}
    去看看我的帖子  里头是完整的代码   能够在FIREFOX中显示  另外表格默认似乎也不支持null(不记得了)
      

  7.   


    怎么给json加数据块名称root:''呢?
      

  8.   

    如你所说可以,之前grid没改。再修改一下解决了。原来应该是数据已经出来了,只是高度不够。加上这句autoHeight:true,就可以显示出来了。
    var grid=new Ext.grid.GridPanel({
    title:'部门列表',
    autoHeight:true,
    store:store,
    cm:column
    });真是谢谢大家啊!!!!
      

  9.   


    ////服务器端
    JSONObject object=new JSONObject();
    object.put("data",jsonArray);/////客户端
    new Ext.data.JsonObject({
    root:'data'
    });
      

  10.   


    谢谢了。各位还有个问题,怎么向struts2发送数组呢?比如把departmentID这列选中的,发送到struts2
    var conn = new Ext.data.Connection();
    var selectDp = grid.getSelectionModel().getSelections();
     var listDpID=new Array();
               for (var i = 0; i< selectDp.length; i++) {
                listDpID[i]=selectDp[i].data.departmentID;
                }
    conn.request({
    url : 'delDepartment',
    params : {
    listDpID : listDpID
    },
    method : 'get',
    scope : this,
    callback : function(options, success, response) {
    if (success) {
    grid.store.reload();
    } else {
    Ext.MessageBox.alert("提示", "删除失败!");
    }
    }
    });

    我的是这样,但是struts2 action里,定义private int[] listDpID ;及get,set方法。但接收不到extJS发送过来的值。
      

  11.   

    var grid=new Ext.grid.GridPanel({
     title:'部门列表',
    store:store,
     cm:column
      renderTo:'deparment'
     });<div id="deparment"></div>
      

  12.   

    一个Sample,实际上可以从store下面的store.data.items直接获取store的所有数据,数组什么的注意要使用Ext.encode()后再发送
    Ext.namespace("app.plugs");
    app.plugs.Modify=function(config){
        Ext.apply(this,config||{});
    }Ext.extend(app.plugs.Modify,Ext.util.Observable);
    app.plugs.Modify.prototype={
        init:function(container){
            container.render=container.render.createSequence(function(){
                var tool=container.getTool('refresh');
                var el=document.getElementById(tool.id);
                var target=this.target;
                var primary=this.primary;
                //获取记录发送到服务端的代码
                el.onclick=function(){
                    alert(target);
                    var ds=container.getStore();
                    var sd='';
                    var ary=new Array();
                    ds.each(function(rc){
    //                    if(!rc.dirty){
    //                        return;
    //                    }
                        ary.push(rc.data);
                         if(sd!=''){
                                sd+=',';
                            }
                            sd+=Ext.encode(rc.data);
                    })
                    sd='['+sd+']';
                    
                    var records={
                        primaryKey:primary,
                        target:target,
                        data:Ext.decode(sd)
                    }
                    alert(Ext.encode(records))
                    
                    Ext.lib.Ajax.defaultPostHeader+=';charset=utf-8';
                    Ext.Ajax.request({
                        method:'post',
                        url:'Modify',
                        
                        success:function(){},
                        failure:function(){},
                        params:{records:Ext.encode(records)}
                    })
                }
            },this);