extjs grid搜索分页实例

extjs grid搜索分页实例

最近要做一个extjs.grid的搜索,差点就要自己遍历data数据了,幸好,多看了看资料!知道只要在ds.load()之内做一些小的配置就能简单的实现查询!!!

以后做东西之前,不要茫茫然的拿过来就做,先上网查查,在做!站在巨人的肩膀上么,才能看得远。

谢谢一下这篇日志的发表人。

 

<script type="text/javascript">

Ext.onReady(function(){

var 
ds = new Ext.data.Store({//这是数据源

  
proxy : new Ext.data.HttpProxy({url:'index.php?model=user&action=list&'}),

        
reader: new Ext.data.JsonReader({

   
root'topics',

            
totalProperty'totalCount',

            
id'user_id'

   
},[

   
'user_id','username','real_name','telephone','station_status','headship'

       
])

    });

var 
colModel = new Ext.grid.ColumnModel([//定义列

   
{header:'ID',width:50,sortable:true,dataIndex:'user_id'},

   {
id:'title',header:'用户名'width:100,sortable:true,dataIndex:'username'},

   {
header:'真实姓名',width:100,sortable:true,dataIndex:'real_name'},

   {
header:'电话',width:100,sortable:true,dataIndex:'telephone'},

   {
header:'岗位状态',width:100,sortable:true,dataIndex:'station_status'},

   {
header:'职务',width:100,sortable:true,dataIndex:'headship'}

  ]);

var 
tb = new Ext.Toolbar('north-div');//创建一个工具条



tb.add({

  
text'添加',

        
handlernewUser

  
},{

        
text'编辑',

        
handlereditUser

  
},{

        
text'删除',

        
handlerdelUser

});

  

var 
grid = new Ext.grid.GridPanel({//列表

    
border:false,

    
region:'south',

    
height:500,

    
loadMasktrue,

    
el:'center',

    
title:'条目列表',

    
storeds,

    
cmcolModel,

    
autoScrolltrue,

    
bbar: new Ext.PagingToolbar({

     
pageSize20,

     
storeds,

     
displayInfotrue,

     
displayMsg'第{0} 到 {1} 条数据 共{2}条',

     
emptyMsg"没有数据"

          
})

            });

var 
top = new Ext.FormPanel({//这里是搜索表单

        
buttonAlign:'right',

  
labelWidth:70,

  
region:'center',

        
frame:true,

        
title'搜索',

        
items: [{

             
layout:'column',

             
items:[{

                 
columnWidth:.33,

                 
layout'form',

                 
items: [{

                     
xtype:'textfield',

                     
fieldLabel'用户名',

                     
id'username',

      
name'username',

                     
anchor:'90%'

                 
}]

             },{

                 
columnWidth:.33,

                 
layout'form',

                 
items: [{

                     
xtype:'textfield',

                     
fieldLabel'姓名',

                     
name'real_name',

      
id'real_name',

                     
anchor:'90%'

                 
}]

             },{

                 
columnWidth:.33,

                 
layout'form',

                 
items: [{

                     
xtype:'textfield',

                     
fieldLabel'Email',

                     
name'email',

      
id'email',

                     
vtype:'email',

                     
anchor:'90%'

                 
}]

             }]

         }

        ],

        
buttons: [{

            
text'保存',

   
handler:function(){

                                
// 这里是关键,重新载入数据源,并把搜索表单值提交

    
ds.load({params:{start:0limit:20,

     
username:Ext.get('username').dom.value,

     
real_name:Ext.get('real_name').dom.value,

     
email:Ext.get('email').dom.value}});

   }

        },{

         
text'重置',

   
handler:function(){top.form.reset();}

        }]

    });

var 
viewport = new Ext.Viewport({

        
layout:'border',

        
items:[{

     
border:false,

     
region:'north',

     
contentEl:'north-div',

     
tbar:tb,

     
height:26

   
},top,

   
grid

  
]}

);

ds.load({params:{start:0limit:20}});

        
// 这里很关键,如果不加,翻页后搜索条件就变没了,这里的意思是每次数据载入前先把搜索表单值加上去,这样就做到了翻页保留搜索条件了

ds.on('beforeload',function(){

  
Ext.apply(

  
this.baseParams,

  {

   
username:Ext.get('username').dom.value,

   
real_name:Ext.get('real_name').dom.value,

   
email:Ext.get('email').dom.value

  
});

});

function 
newUser() {

  
parent.newTab('400012','添加用户','index.php?model=user&action=add');

}

function 
editUser() {

  var 
grid.getSelectionModel().getSelections();

  if (
s.length==0) {

   
Ext.Msg.alert('出错啦','你还没有选择要操作的记录!');

  }

  for (
i=0;i<s.length;i++) {

   var 
id s[i].id;

   
parent.newTab('400012'+id,'编辑用户','index.php?model=user&action=add&user_id='+id);

  }

}

function 
delUser() {

  var 
ids getId(grid);

  if (
ids) {

   
Ext.Msg.confirm('确认''真的要删除吗?', function(btn){

    if (
btn == 'yes'){

     
Ext.Ajax.request({

        
url'index.php?model=user&action=delete&ids='+ids,

        
success: function(result){

       
json Ext.util.JSON.decode(result.responseText);

       
ds.reload();

       }

     });

    }

   });  

  } else {

   
Ext.Msg.alert('出错啦','你还没有选择要操作的记录!');

  }

}

loadend();

});

</script>

<div id="north-div"></div>

<div id="center"></div>[/i] 

 

 

来源:http://www.phpchina.com/bbs/redirect.php?tid=60381&goto=lastpost&sid=wHsSC8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值