`
sonckchi
  • 浏览: 15925 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

EXTJS3 Ext.PagingToolbar() 快捷键应用

阅读更多
/**
 * 键盘控制翻页
 * @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获取 要控制的组件
		}
	}
});
0
1
分享到:
评论

相关推荐

    extjs中Ext.Panel和TreePanel 组件动态加载本地页面数据

    在EXTJS这个强大的JavaScript框架中,`Ext.Panel`和`TreePanel`是两个非常重要的组件,它们被广泛用于构建复杂的用户界面。这篇文章将探讨如何在这些组件中动态加载本地页面数据,以提升用户体验并实现灵活的数据...

    extjs-Ext.ux.form.LovCombo下拉框

    在EXTJS框架中,`Ext.ux.form.LovCombo`是一种自定义组件,它扩展了基本的`Ext.form.field.ComboBox`,提供了更丰富的功能,尤其是针对多选和联动选择的需求。这个组件通常用于创建具有“lov”(即“Look Up Value”...

    ExtJs的Ext.Ajax.request实现waitMsg等待提示效果

    在使用ExtJs开发Web应用程序时,实现用户在进行耗时的Ajax请求时的等待提示效果是一个常见的需求。ExtJs提供了Ext.Ajax.request方法来进行Ajax请求,但默认情况下,该方法不支持waitMsg属性,不像fp.form.submit方法...

    ExtJS ToolTip功能

    ### ExtJS ToolTip功能 #### 知识点详解 在ExtJS中,`ToolTip`功能是一种非常实用且灵活的功能,它允许用户在鼠标悬停在某个元素上时显示额外的信息。这种特性对于提高用户界面的可用性和用户体验尤其有用。本文将...

    extjs使用pagingtoolbar时,点击下一页,出现查询结果和查询条件不的解决办法

    在EXTJS中,PagingToolbar 是一个非常实用的组件,用于在大数据集上实现分页显示,提升用户体验。然而,在实际使用过程中,我们可能会遇到一些问题,比如在点击“下一页”按钮时,加载的数据与预设的查询条件不符。...

    ExtJS 自定义分页控件---- PM3PagingToolbar.js

    参考: Ext.PagingToolbar.js 如有BUG还请各位提出或留言. 附件中有图片, 一看就知道. 用法: var grid = new Ext.grid.GridPanel({ bbar: new Ext.PM3PagingToolbar({ store : store, displayInfo : true, ...

    Extjs4.X下comboboxTree下拉树型菜单,完美支持多选、单选,绝对好用

    在ExtJS 4.x框架中,ComboboxTree是一种特殊的组件,它将传统的下拉框与树形结构结合在一起,提供了一种更为灵活的用户输入方式。这种组件在数据选择上非常实用,尤其当数据层级关系复杂时,可以方便地进行多选或...

    Extjs 继承Ext.data.Store不起作用原因分析及解决

    关于这个原因有很多种,我只说下我遇到的 我这样 写Store来复用的 代码如下: DocStore = Ext.extend(Ext.data.Store,{ initComponent:function(){ this.proxy = new Ext.data.HttpProxy({url:this.url}); this....

    Ext.ux.UploadDialog.zip

    在EXTjs中,使用UploadDialog组件需要引入相关的JS和CSS资源,并在EXT应用中实例化。开发者可以通过EXT的API文档学习如何配置和使用UploadDialog,包括添加按钮、监听事件、设置参数等。对于初次接触EXTjs ...

    Ext.Ajax.request2.x实现同步请求

    在EXTJS库中,`Ext.Ajax.request`是用于发送Ajax请求的核心方法,它支持异步和同步操作。本文将详细解析如何利用`Ext.Ajax.request`实现同步请求,并探讨其背后的原理和注意事项。 首先,我们需要理解Ajax的本质,...

    Ext Extjs 禁止文本和日期编辑

    在Ext JS这个强大的JavaScript框架中,开发者经常使用各种组件来构建富客户端应用,其中包括TextField(文本字段)和DatePicker(日期选择器)。有时,我们可能需要根据应用需求在运行时禁用这些组件的编辑功能,...

    Ext.get与Ext.fly 的区别

    在阅读《Ext_Core手册.pdf》时,可以深入研究EXTJS的核心概念和API,了解更多关于`Ext.get`和`Ext.fly`的底层实现以及它们在不同场景下的应用策略。同时,理解EXTJS中的`Element`类和DOM操作对于提升EXTJS应用的性能...

    Ext.Ajax.request跨域

    在IT行业中,跨域是Web开发中一个常见的挑战。...通过理解和运用CORS,我们可以利用Ext.Ajax.request在ExtJS应用中安全地进行跨域通信。同时,深入研究`domain.js`文件将有助于我们掌握具体实现细节。

    ExtJS 4.0 改善Ext.grid.plugin.RowEditing (重构,v1.4版本,2011-09-11)

    ExtJS是一个流行的JavaScript库,专用于构建富客户端应用程序。它提供了丰富的组件库,包括表格、表单、树形视图等。在4.0版本中,ExtJS对RowEditing插件进行了重大改善,以提供更好的数据编辑体验。RowEditing插件...

    ExtJS 3.4.0中的 ext.jsb2 文件

    在3.4.0版本中,`ext.jsb2` 文件是一个关键组成部分,它对于理解和开发基于ExtJS的应用程序至关重要。这个文件的缺失可能会对升级到4.0.0版本的开发者造成困扰,因为4.0.0版本不再包含这个文件,但幸运的是,它可以...

    extjs4的Ext.frorm.Panel控件属性说明和表单控件说明

    主要用例子说明extjs4的form表单的运用,其中有表单属性说明,表单控件运用说明如: title:'表单', //表单标题 bodyStyle:'padding:5 5 5 5', //表单边距 height:120, //表单高度 width:200, //表单宽度 ...

    Extjs Ext.MessageBox.confirm 确认对话框详解

    Ext.MessageBox.confirm&#40;&#41;详解 显示一个确认对话框,用来代替JavaScript标准的confirm&#40;&#41;方法,具有两个按钮“是”和“否”如果为其提供一个回调函数,则该函数将在单击按钮后被调用(包括右上角的...

    ExtJs选中var editor = new Ext.ux.grid.RowEditor详解

    ### ExtJs选中 `var editor = new Ext.ux.grid.RowEditor` 详解 在Web开发领域,特别是使用ExtJs框架进行复杂用户界面构建时,`RowEditor` 是一个非常实用的功能,它允许用户直接在表格行内编辑数据,极大地提高了...

    Ext.ux.SwfUploadPanel.js

    首先,`ExtJS`(全称为EXT JavaScript Library)是由Sencha公司开发的一个强大的JavaScript框架,用于构建桌面和移动Web应用。它提供了丰富的组件库,包括表格、面板、窗口、菜单等,帮助开发者快速构建用户界面。 ...

Global site tag (gtag.js) - Google Analytics