/**
* 键盘控制翻页
* @example 控制键 按 "左" 或 "Page Up" 翻至 上一页
* @example 控制键 按 "右" 或 "Page Down" 翻至 下一页
* @example 控制键 按 "Home" 翻至 首页
* @example 控制键 按 "End" 翻至 尾页
*
* @example !注
* <p>1.在当前 store 增加 load 事件
* <p>例:
* <p>store.on('load',function(){
* <p> if(store.getCount()>0){
* <p> grid.getSelectionModel().selectFirstRow();//首行被选
* <p> grid.getView().focusRow(0);//焦点定位
* <p> }
* <p>});
* <p>2.在当前 grid 增加 keydown 事件
* <p>例:
* <p>grid.on('keydown',function(e){
* <p> e.stopEvent();
* <p> var thisPagingToolbar = Ext.getCmp('PagingToolbar的ID');
* <p> PagingToolbar_KeyEvent(thisPagingToolbar,e);
* <p>});
* @param {} thisPagingToolbar
* @param {} e
*/
function PagingToolbar_KeyEvent(thisPagingToolbar,e){
if((e.getKey()==Ext.EventObject.LEFT) || (e.getKey()==Ext.EventObject.PAGE_UP) ){
if(thisPagingToolbar.readPage()!=1)
thisPagingToolbar.movePrevious();
}
if((e.getKey()==Ext.EventObject.RIGHT) || (e.getKey()==Ext.EventObject.PAGE_DOWN)){
if(thisPagingToolbar.readPage()!=thisPagingToolbar.getPageData().pages)
thisPagingToolbar.moveNext();
}
if(e.getKey()==Ext.EventObject.HOME){
if(thisPagingToolbar.readPage()!=1)
thisPagingToolbar.moveFirst();
}
if(e.getKey()==Ext.EventObject.END){
if(thisPagingToolbar.readPage()!=thisPagingToolbar.getPageData().pages)
thisPagingToolbar.moveLast();
}
}
//运行实例
var customerTypesDataStore = new Ext.data.Store({
proxy:new Ext.data.HttpProxy({
url:'./customerType/list.tc'
}),
reader:new Ext.data.JsonReader(
{root:"Records",totalProperty:"RecordCount"},
[
{name : 'CustomerTypeCode',type : 'int'},
{name : 'CustomerTypeName',type : 'string'},
{name : 'ReCounts',type : 'int'}
]
)
});
customerTypesDataStore.on('beforeload', function() {
customerTypesDataStore.removeAll();
this.baseParams = {
searchText:customerTypesGridPanel.SearchField.getValue()
};
});
customerTypesDataStore.on('load',function(){
if(customerTypesDataStore.getCount()>0){
customerTypesGridPanel.getSelectionModel().selectFirstRow();
customerTypesGridPanel.getView().focusRow(0);
}
});
var customerTypes_grid = Ext.grid;
var customerTypes_grid_PageSize = 20;
function customerTypesDataStore_load(){
customerTypesDataStore.load({params:{start:0,limit:customerTypes_grid_PageSize}});
}
var customerTypesGridPanel = new customerTypes_grid.GridPanel({
store:customerTypesDataStore,//数据源定义
loadMask : {
msg : '数据加载中...'
},
cm: new customerTypes_grid.ColumnModel([
new customerTypes_grid.RowNumberer(),
{header:'问题类型编码', dataIndex:'CustomerTypeCode',width:80},
{header:'问题类型名称', dataIndex:'CustomerTypeName'},
{header:'统计次数', dataIndex:'ReCounts'}
]),
viewConfig: {
forceFit:true
},
columnLines: true,
region:'center',
iconCls:'icon-grid',
tbar: [
new Ext.form.TextField({
ref:'../SearchField',
emptyText:'请输入 问题类型编码 / 问题类型名称',
width:500
,selectOnFocus:true
,enableKeyEvents:true
,listeners:{
specialkey:function(field,e){
if (e.getKey()==Ext.EventObject.ENTER){
e.stopEvent();
customerTypesDataStore_load();
}
}
}
}),{
text:'查找',
tooltip:'查找',
iconCls:'search',
handler:function(){
customerTypesDataStore_load();
}
}
],
bbar: new Ext.PagingToolbar({
id:'customerTypesGridPanel_paging',//设置分页组件ID
pageSize: customerTypes_grid_PageSize,
store: customerTypesDataStore,
displayInfo: true,
displayMsg: '当前 第{0}-{1} 条 / 共 {2} 条',
emptyMsg: "没有数据"
}),
sm: new customerTypes_grid.RowSelectionModel({
singleSelect:true,
}),
listeners:{
'keydown':function(e){
e.stopEvent();
PagingToolbar_KeyEvent(Ext.getCmp('customerTypesGridPanel_paging'),e);
//通过ID获取 要控制的组件
}
}
});
分享到:
相关推荐
extjs多选下拉框,Ext.ux.form.LovCombo,extjs 以修复多选下拉框火狐下取不到值的问题,火狐下div不显示背景色的问题
NULL 博文链接:https://maoyi606.iteye.com/blog/1782825
主要介绍了ExtJs的Ext.Ajax.request实现waitMsg等待提示效果,需要的朋友可以参考下
关于这个原因有很多种,我只说下我遇到的 我这样 写Store来复用的 代码如下: DocStore = Ext.extend(Ext.data.Store,{ initComponent:function(){ this.proxy = new Ext.data.HttpProxy({url:this.url}); this....
参考: Ext.PagingToolbar.js 如有BUG还请各位提出或留言. 附件中有图片, 一看就知道. 用法: var grid = new Ext.grid.GridPanel({ bbar: new Ext.PM3PagingToolbar({ store : store, displayInfo : true, ...
ExtJS tooltip功能组件实例
EXTjs的上传组件
extjs的pagingtoolbar 点击下一页时,出现store的load时间,但是只有start和limit这两个参数,这样就出现了,点击下一页的时候,查询出 的结果和条件不符合。虽然可以通过一次查处所有符合条件的记录,然后根据传入...
Ext Extjs 禁止文本和日期编辑 ExtJS中动态设置TextField的readOnly属性
3、Ext.ux.upload.Button 4、Ext.ux.toggleslide.ToggleSlide 5、Ext.ux.container.ButtonSegment 6、Ext.ux.grid.plugin.RowEditing 7、Ext.ux.grid.plugin.DragSelector 8、Ext.ux.grid.plugin.SortMenu 9、Ext.ux...
代码如下: Ext.onReady(function() { Ext.Msg.alert(‘提示’, ‘逗号分隔参数列表’); //这种方式非常常见的 }); 效果图: 代码如下: Ext.onReady(function() { //定义 JSON(配置对象) var config = { ...
NULL 博文链接:https://atian25.iteye.com/blog/1019910
JAVA.Extjs.Hibernate.Web开发应用免费教程集锦.docx
Ext.ux.GoogleChart extjs插件Ext.ux.GoogleChart extjs插件
JAVA.Extjs.Hibernate.Web开发应用免费教程集锦收集.pdf
extjs 可编辑的表格树,每个单元格自定义编辑组件,可以自适应列宽,只有源码与例子,运行实例要修改路径,不然图片不能显示,注意etree.jsp的js引入路径 支持Ext2.x以上版本 如运行不了EmailTo : codeme9@gmail....
JAVA.Extjs.Hibernate.Web开发应用免费教程集锦
extjs-basex.js extjs-basex.js extjs-basex.js
Ext.PagingToolbar运行时不能动态设置每页条数的功能,此控件就可以实现这些功能,包含下拉选择分页条数和滑动选择分页条数