这几天做的EXT TreePanel时遇到的加载的问题,给大家分享一下,仅供参考

问题描述:我在页面加载的时候写了一个treepanel,并配置了相应的store,store的autoload设置为false,每次由button的时间触发加载,但每次store的load方法总是不能够在treepanel中加载出数据。

找了很多博客看了许多人的解决方法,最后发现竟然是autoload的问题。只是简单地把autoload设为true,reload方法就执行到了,之前设置为false,请求到后台数据,且有返回,并且store里面也没有获取到值,但是数据怎么也绑不到treepanel中去。
下面是正确的代码:

var treeStore1 = Ext.create('Ext.data.TreeStore', {
                id: 'treestore1',
                pageSize: 50,
                autoLoad: true,
                //加载的时候不需要数据的话,随便写一个url,不会返回数据
                proxy: {
                    type: 'ajax',
                    url: 'Tracing.ashx?action=Query',
                    async: false
                }
            });
            var Billtree = Ext.create('Ext.tree.Panel', {
                    id: 'Billtree',
                    title: "生产流程信息",
                    textAlign: 'center',
                    collapsible: false,
                    rootVisible: false,//是否显示根节点
                    leaf:false,
                    displayField: 'value',
                    valueField: 'uid',
                    store: treeStore1,
                    listeners: {
                        itemclick: function () {
                        }
                    },
                    columns: [
                        {
                            xtype: 'treecolumn',
                            header: '生产用料信息',
                            dataIndex: 'value',
                            sortable: false,
                            width:480
                        }
                ]
                });
var btnSearch = Ext.create('Ext.Button', {
                    text: '查询',
                    id: 'btnSearch',
                    iconCls: 'unknown-button', style: 'border:solid 1px gray;height:30px;width:60px;',
                    textAlign: 'center',
                handler: function () {
                	   //每次load之后,store里面data会有数据,但是显示的数据之前的不会被清除,所有的数据会全部显示,需要清除treepanel里面的数据
                	   //清空treepanel里面的数据
                    Billtree.getRootNode().removeAll();
                    //清空store里面的数据
                    treeStore1.clearData();
                    var SNNo = Ext.getCmp("SNNo").value;
                    var MaterialBatch = Ext.getCmp("MaterialBatch").value;
                    var ProductionBillNo = Ext.getCmp("ProductionBillNo").value;
                    var TransferCard = Ext.getCmp("TransferCard").value;
                    var $url = 'Tracing.ashx?action=QueryRoot';
                    var $params = { snno: SNNo, materialbatch: MaterialBatch, productbillno: ProductionBillNo, transfercard: TransferCard };
                    //设置代理,执行load方法,重新加载数据到store
                    treeStore1.setProxy({
                        extraParams: $params, url: $url, type:'ajax'
                    });
                    treeStore1.setAutoSync(false);
                    treeStore1.commitChanges();
                    treeStore1.reload();
                }  
            });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值