Sq_In 2011-08-17 16:08
浏览 278
已采纳

extjs 做数据库增删改查时,原先是全部查上来显示的,现在用条件查询,怎么在原先的位置上显示条件查询的结果

extjs 做数据库增删改查时,原先是全部查上来显示的,现在用条件查询,怎么在原先的位置上显示条件查询的结果

  • 写回答

8条回答

  • mazzystar0 2011-08-22 10:19
    关注

    重写store的onbeforeload方法,构造查询参数,执行查询时这些参数可以直接在后台获取到。这种方式比较好理解。

    每次刷新(refreshGrid)都会执行这个方法。

    [code="java"]
    var grid;
    /**

    • grid的参数 */ var params = { start : 0, limit : 1000 };

    var rIndex;/** 操作行的id **/

    function getGrid(){
    var store = new Ext.data.Store({
    proxy : new Ext.data.HttpProxy({
    url : proPath + '/area/area!orderGrid.action'
    }),
    reader : new Ext.data.JsonReader({
    totalProperty : 'total',root : 'root'},
    [ {name:'id'},
    {name:'name'},
    {name:'code'}
    ]
    )
    });

    var rn = new Ext.grid.RowNumberer();
    var colm = new Ext.grid.ColumnModel([rn,{
        header : "ID",
        dataIndex : "id",
        width : 50,
        sortable : true
    }, {
        header : "区域名称",
        dataIndex : "name",
        width : 170,
        sortable : true
    }, {
        header : "区域代码",
        dataIndex : "code",
        width : 100,
        sortable : true
    },{
        header : "排序",
        dataIndex : "id",
        renderer : orderButton,
        width : 50
    }]);
    
    
    
    grid = new Ext.grid.GridPanel({
        id : JCmpId.grid,
        region : 'center',
        store: store,
        cm : colm,
        stripeRows: true,
        height:320,
        width:600,
        frame:true,
        title:'区域排序',
    
        plugins: new Ext.ux.PanelResizer({
            minHeight: 100
        }),
        tbar : new Ext.Toolbar({
            items : [
                '-', '所属城市 ', citySiteCom(),
                '-', 
                {text : '查询',
                    iconCls : 'mtfQuery',
                    handler :function (){refreshGrid(grid);} 
                }
            ]
        }),
        bbar: new Ext.PagingToolbar({
            pageSize: 1000,
            store: store,
            displayInfo: true,
            refresh : function() {
                refreshGrid(grid);
            },
            plugins: new Ext.ux.ProgressBarPager()
        })
    });
    grid.addListener('rowclick', function(grid,rowindex,e){
        rIndex = rowindex;
    });
    
    // 查询参数统一在此处处理 ,点击刷新按钮更新 start limit见   base.js refreshGrid
    store.on('beforeload', function(thiz, options) {
        Ext.apply(thiz.baseParams, {
            time : new Date().getTime(),
            'cityId' : Ext.getCmp("csId").getValue()
        });
    
    });
    

    // store.load({
    // params : params
    // });
    return grid;
    }
    function refreshGrid(grid) {
    var s = grid.getStore();
    Ext.apply(params, {
    'start' : grid ? grid.getBottomToolbar().cursor : 0
    });
    s.load( {
    params : params
    });
    }
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频