0

对于远程过滤,每当我单击过滤器/排序时,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
请帮助

4

1 回答 1

0

经过大量阅读后解决了,问题是,我想,ajax 将store.load使用 HttpProxy 使用的重新加载数据,经过阅读和喧嚣后,我知道它可能不适用于 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});
于 2013-03-01T07:28:06.853 回答