關於ExtJs4的Grid帶 查詢 參數 分頁(baseParams-->extraParams)


(園里很多文章,美名其曰 :ExtJs GridPanel+查詢條件+分頁。  但是加查詢條件后點擊下一頁,查詢條件失效,求你們自己測試明白再顯擺

不要誤導我這種新人。)

ExtJs6發布了,ExtJs4並不新鮮了,首先要說的是在5.X和6.X里關於此問題,是不是有屬性或者方法的變化我並不確定。

ExtJs4的proxy中,並沒有baseparams這個屬性,ExtJs4中變成了什么呢?

查了很多大家的中文博客也沒找到結果,最后看到一段英文:

You need to use the 'extraParams' proxy property in place of the baseParams one from Ext 3. An equivalent JsonStore in ExtJS 4 .

答案很明了,用extraParams來代替。

問題描述:

比如原有加載數據是100頁,查詢后的確顯示了7頁,點擊下一頁卻變成了100頁的第二頁。我想這一定是個非常常見的問題。

解決辦法:

給你的store的proxy加屬性

var mystore = Ext.create('Ext.data.Store', {
        fields: ["RoleID", "RoleName", "CreateTime", "ModifyTime", "ModifyAdmin", "DelFlag"], //"CreateAdmin"
        pageSize: 15, //頁容量條數據
        //是否在服務端排序 (true的話,在客戶端就不能排序)
        remoteSort: false,
        remoteFilter: true,
        proxy: {
            type: 'ajax',
            url: "/AdminArea/AdminRole/GetRoleListJson", //
            //extraParams: {
            //    showDel: $('#hiddenDelflag').val()
            //},
            reader: {   //這里的reader為數據存儲組織的地方,下面的配置是為json格式的數據,例如:[{"total":50,"rows":[{"a":"3","b":"4"}]}]
                type: 'json', //返回數據類型為json格式
                root: 'rows',  //數據
                totalProperty: 'total' //數據總條數
            },
            extraParams: { showDel: 'true' }
        },
        sorters: [{
            //排序字段。
            property: 'RoleID',
            //排序類型,默認為 ASC
            //  direction: 'desc'
        }],
        autoLoad: true  //即時加載數據
    });

 

當你需要查詢或者篩選的條件為----不顯示回收站內信息----就是要

將showDel:false,刷新表格,翻頁的時候,依然不顯示回收站內信息。

如何能保留這個參數一直存在,就是以上的方法咯。

如果你看到其他文章告訴你用用baseParams,在Ext4中替換成extraParams就可以了。

 

擴展:

那么如何動態獲取showDel這個屬性,並且修改它。下面的代碼將會給你答案,

 var proxy = mystore.getProxy();
        proxy.extraParams.showDel = false; //獲取並且修改
        mystore.load();

 

這樣一來,除非你再次改變參數,不然無論你怎樣翻頁,showDel都為false;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM