IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    关于ExtJs4的Grid带 查询 参数 分页(baseParams-->extraParams) - 坦荡

    坦荡发表于 2015-09-07 16:14:00
    love 0

    (园里很多文章,美名其曰 :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;

     


    本文链接:关于ExtJs4的Grid带 查询 参数 分页(baseParams-->extraParams),转载请注明。



沪ICP备19023445号-2号
友情链接