使用现有HttpProxy添加嵌套ajax调用时,远程过滤值不会应用于网格

时间:2013-02-28 14:33:20

标签: javascript ajax extjs http-proxy

对于远程过滤,每当我点击进行过滤/排序,Forms.asp触发使用代理,并自动重新加载
早些时候,当我尝试下面的脚本,重新加载extjs网格时Forms.asp返回带有过滤网格数据的新xml,它运行正常。

var gridStore = new Ext.data.Store({
            gridId  :'d_grid',
            reader: new Ext.data.XmlReader({ record: etc }, etc etc),
            proxy: new Ext.data.HttpProxy({ url: "Forms.asp?", 
            timeout: 120000 }),
            baseParams:{
                XML:$$("XML").value,                                
                some more params                
            },          
            data: doc,
            remoteSort: true});

但当我尝试使用某些WCF调用来修改它时:

var gridStore = new Ext.data.Store({
                gridId  :'d_grid',
                reader: new Ext.data.XmlReader({ record: etc }, etc etc),
                proxy: new Ext.data.HttpProxy({ url: "Forms.asp?", 
                timeout: 120000  ,

            success: function (response) {
                FilterXml = response.responseText;

                created new XmlDoc= with somechanges(FilterXml)

                Ext.Ajax.request({
                             method: 'POST',
                             url:'/mayo/Service.svc/GetnewXML',
                             params: {'strIPXML': XmlDoc.xml}});
            }}),
                baseParams:{
                    XML:$$("XML").value,                                
                    some more params                
                },          
                data: doc,
                remoteSort: true});

这里我正在捕捉早期asp的响应,并进一步修改它将其发送到Web服务, 使用新添加的ajax返回与上述情况中返回的格式相同的xml(使用success: function{ alert etc}检查),

但是“新的xml没有被送到网格,因为它在上面的情况下喂食” 没有错误被抛出..
使用extjs 3.4
请帮忙

1 个答案:

答案 0 :(得分:0)

经过多次阅读解决, 问题是,我认为,ajax将使用HttpProxy使用的store.load重新加载数据,在阅读和喧嚣后我得到它可能不适用于ajax,所以现在我使用store.loaddata并且它有效。

var gridStore = new Ext.data.Store({
                gridId  :'d_grid',
                reader: new Ext.data.XmlReader({ record: etc }, etc etc),
                proxy: new Ext.data.HttpProxy({ url: "Forms.asp?", 
                timeout: 120000  ,

            success: function (response) {
                FilterXml = response.responseText;

                created new XmlDoc= with somechanges(FilterXml)

                Ext.Ajax.request({
                             method: 'POST',
                             url:'/mayo/Service.svc/GetnewXML',
                             params: {'strIPXML': XmlDoc.xml}

                             success: function (response) {
                                                FormXML = PC.getXmlStr(response.responseXML);
                                                doc = OrchGenericObj.GetXMLObj(FormXML, 0);
                                                Ext.getCmp('dashboard_gd').store.loadData(doc);
                            }    });
            }}),
                baseParams:{
                    XML:$$("XML").value,                                
                    some more params                
                },          
                data: doc,
                remoteSort: true});