EXT数据展示(Ext.grid.Panel)

本文展示了一个将EXT与Ajax请求分离的示例,通过定义数据模型和存储,实现了一个带有分页功能的数据表格,并使用Ajax加载数据填充表格。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在网上看到好多关于EXT的例子,但大多数都是用的EXT代理ajax请求的方式,我这里写的是把EXT与ajax拆开的。下面为EXT代码:
var dataSource = '';
var myStore = '';
Ext.require([
	'Ext.grid.*',
	'Ext.data.*'
]);
Ext.onReady(function() {
	Ext.QuickTips.init();// 标准初始化

	// 建立一个store要使用的 model
	Ext.define('flow_analyse', {
		extend : 'Ext.data.Model',
		fields : [ {
			name : 'count_flow',
			type : 'int'
		}, {
			name : 'first_flow',
			type : 'int'
		}, {
			name : 'last_flow',
			type : 'int'
		}]
	});

	myStore = Ext.create('Ext.data.Store', {
		model : 'flow_analyse',
		reader: {
            type: 'json',
            root: dataSource
        },
		autoLoad : false
	});
	
	var grid = Ext.create('Ext.grid.Panel', {
		renderTo : 'information_date',// 渲染到一个div上
		frame : true,// 面板渲染
		forceFit : true,// 自动填充panel空白处
		autoHeight:true,
		columns : [// 列模式
		{ text:'序号', xtype: 'rownumberer', width:50, align : 'center'},
		{
			text : "总流量",
			dataIndex : 'count_flow',
			width : 100,
			align : 'center'
		}, {
			text : "上行流量",
			dataIndex : 'first_flow',
			width : 100,
			align : 'center'
		}, {
			text : "下行流量",
			dataIndex : 'last_flow',
			width : 200,
			align : 'center'
		}],
		store : myStore,
		dockedItems : [ {// 分页
			xtype : 'pagingtoolbar',
			store : myStore,
			dock : 'bottom',// 定位
			displayInfo : true
		} ]
	});
	
	/**
	 * 以下是非EXT代码,Ext.onReady(function(){})与$(function(){})具有同样的功能
	 */
	onclickMenu();
	//初始化条件区的时间
	$('#startDate').datetimebox({
		showSeconds:true
	});
	$('#endDate').datetimebox({
		showSeconds:true
	})
	
});


以下为ajax代码:

function onclickMenu(){
	
	var datas = { };
	$.ajax({        
		type:'post',        
		url:path+'/multipleAnalyseController/selectFlowAnalyse.do',     
		dataType:'json',  
		async: false,
		data: datas,
		success:function(result){
			myStore.removeAll();
			dataSource = result.multipleAnalyseList;
			myStore.add(dataSource);
		}    
	});
}


### 关于Ext.grid.Panel的文档与使用示例 #### 特性Feature概述 `Ext.grid.feature.Feature` 是一类专为 `Ext.grid.Panel` 设计的特殊插件,它不仅提供了可被扩展的基础模板方法,还允许开发者通过继承此类来创建自定义功能。这些特性能够增强表格的功能性和用户体验,例如分组、汇总等功能均可以通过实现特定的特征类获得支持[^1]。 #### 创建带有复选框模型的选择机制 为了向 `Ext.grid.Panel` 添加多选能力,可以利用 `Ext.selection.CheckboxModel` 类实例化对象并将其作为配置项传入面板构造函数中。下面是一个简单的例子展示如何设置这一选项: ```javascript var checkboxModel = Ext.create('Ext.selection.CheckboxModel'); // 将其应用于grid panel... ``` 这段代码片段展示了如何初始化一个复选框模式,并准备用于关联到网格组件上[^2]。 #### 综合应用案例分析 在一个更复杂的场景下,除了基本的数据展示外,可能还需要处理级联组合框(即当父级改变时自动更新子级可用选项)、日期字段和数值输入控件等交互逻辑。这里给出了一部分关键代码段落说明如何集成上述提到的各种UI元素至单个页面布局内[^3]: ```javascript { xtype: 'combobox', name: 'parentCombo', fieldLabel: 'Parent Category', store: parentStore, displayField: 'name', valueField: 'id', listeners: { select: function(combo, records){ var childCombo = combo.up().down('[name=childCombo]'); // 更新子combo数据源依据所选记录... } } }, { xtype: 'datefield', name: 'startDate', fieldLabel: 'Start Date' } ``` 此代码节选主要关注于构建具有父子关系的下拉列表以及日期选取器的实际运用方式;对于具体业务需求而言,则需进一步调整和完善相应属性值以满足实际应用场景的要求。 #### 实现搜索过滤功能 为了让用户能够在大量数据中快速定位所需条目,在 `Ext.grid.Panel` 中加入实时查询是非常有帮助的一项改进措施。通常做法是在顶部工具栏放置一个文本框供键入关键词,随后监听键盘事件触发后台异步请求获取匹配结果集刷新视图显示内容。以下是简化版的操作指南[^4]: ```javascript items:[{ xtype:'toolbar', items:[ {xtype:'textfield',itemId:'searchField'}, {text:'Search',handler:function(){ var searchText = this.up().down('#searchField').getValue(); grid.getStore().load({ params:{query:searchText}// 假设服务器端API接受名为'query'参数形式传递过来的关键字字符串 }); }} ] }] ``` 以上就是关于 `Ext.grid.Panel` 的一些核心概念介绍及其典型的应用实践样例解析。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值