【问题标题】:Extjs 4 - How can I get the complete url with params from a currently loaded grid's store?Extjs 4 - 如何从当前加载的网格商店中获取带有参数的完整 url?
【发布时间】:2012-09-24 09:08:49
【问题描述】:

我加载了一个网格,我想获取将 json 数据加载到其中的当前商店 URL,并将一个额外的参数传递给它,并将此 URL 作为 pdf 或 xls 加载。但是如何获取网址呢?

【问题讨论】:

    标签: url parameters get grid extjs4


    【解决方案1】:

    获取代理和 ExtraParams:

    var url = grid.getStore().getProxy().url;
    var params = grid.getStore().getProxy().extraParams;
    

    然后,构建 url:

    var newUrl = url + '?' + Ext.Object.toQueryString (params);
    

    newUrl 会是这样的:

    your_url_data.json?param1=value1&param2=value2
    

    我认为不存在执行此操作的代理方法,但您可以扩展现有代理,如下所示:

    Ext.define ('MyProxy', {
        extend: 'Ext.data.proxy.Ajax' ,
        buildInternalUrl: function () {
            return this.url + '?' + Ext.Object.toQueryString (this.extraParams);
        }       
    });
    

    然后:

    var newUrl = grid.getStore().getProxy().buildInternalUrl ();
    

    结果是一样的 ;)

    您可以在此处找到代理文档:Ajax Proxy

    【讨论】:

    • 我不想设置 extraParams。我不想改变任何东西。这是一个配置和加载的网格,带有现有的 extraParams。所以我想获取 url 和额外的参数。我可以获取额外的参数,并将 url 分开,并将其与 javascript 放在一起,但我想知道为什么不存在 extjs 方法来创建它。
    • 对不起,我不明白你的问题。所以让我更好地理解:你想构建一个由代理 url 和 extraParams 组成的 url,对吧?
    • 是的。这就是我想要的。谢谢。
    【解决方案2】:

    您可以通过yourGrid.getStore().getProxy().url获取店铺网址

    【讨论】:

    • 这只是获取url,没有extraParams。
    • 你问的网址。我假设您阅读了用于代理的 extjs api。 yourGrid.getStore().getProxy().extraParams 保存添加你需要的额外参数的对象
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 2011-05-02
    • 2013-05-01
    相关资源
    最近更新 更多