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

无废话ExtJs 系统教程十四[列表:GridPanel]

 
阅读更多

在Extjs中,GridPanel用于数据显示,即我们平时说的列表页。在本节中,我们先对GridPanel有个基本的认识,后继过程再做Demo练习详细讲解在开发中的应用。

 

1. index.jsp代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>    
    <title>My JSP 'index.jsp' starting page</title>

	<!--ExtJs框架开始-->
	<script type="text/javascript" src="Ext/adapter/ext/ext-base.js"></script>
	<script type="text/javascript" src="Ext/ext-all.js"></script>
	<link rel="stylesheet" type="text/css" href="Ext/resources/css/ext-all.css" />
	<!--ExtJs框架结束-->	
	<!-- 	 
	<script type="text/javascript" src="study/helloWorld.js"></script>
	<script type="text/javascript" src='study/window.js'></script>
	<script type="text/javascript" src='study/formPanel.js'></script>
	<script type="text/javascript" src='study/textField.js'></script>
	<script type="text/javascript" src='study/button.js'></script>
	<script type="text/javascript" src='study/login.js'></script>
	-->	
	<!--调用/study/gridPanel_columnModel.js 实现列表信息页面  -->
	<script type="text/javascript" src="Ext/src/locale/ext-lang-zh_CN.js"></script><!--中文日期翻译-js-->
	<script type="text/javascript" src="study/kindeditor/kindeditor.js"></script>
	<script type="text/javascript" src='study/gridPanel_columnModel.js'></script>
	
	<style type="text/css">
		.loginicon
		{
			background-image: url(study/login.gif) !important;
		}
	</style>
	<style type='text/css'>
		.x-form-unit
		{
			height:22px;
			line-height:22px;
			padding-left:2px;
			display:inline-block;
			display:inline;
		}
	</style>
	
  </head>  
  <body>
  	<!--------------------- 上层 -->
  	<!-- 这里使用ContainerLayout: 垂直方式布局  -->
  	<div id='ContainerLayout' style='float:left;width:300px'></div>
  	<!-- padding-left 是用来填充间隔,如果没有则两个容器/组件会完全挨着 -->
  	<div id='hello' style='float:left;width:300px;padding-left: 10px'></div>
  	<div id='right-upward' style='float:left;width:700px;padding-left:15px'></div>
  	
  	
  	<!--------------------- 中间------------------------------------>
  	<div id='BorderLayout' style='padding: 20px 0px 0px 0px;clear:both'></div>
  	
  	
  	<!--------------------- 底层------------------------------------>
  	<div id='accordionLayout' style='float:left;padding:20px 0px;width:300px;height:200px'></div>
  	<!-- 两个Panel渲染同一div,不会相互覆盖,会上下依次显示 -->
  	<div id='fitLayout' style='float:left; padding:20px 0px 0px 20px;height:30px'></div>
  	<!-- 表格布局 -->
  	<div id='tableLayout' style='float:left; padding:20px 0px 0px 20px;height:30px;width:100px'></div>
  </body>
</html>

 

2. gridPanel_columnModel.js 代码如下:

Ext.onReady(function(){
	
	//复选框
	var checkBoxSelection = new Ext.grid.CheckboxSelectionModel(); //创建一个复选框的列
	
	
	//数据源, 如同数据库中的存储一样
	//	id	name		sex		birthday
	//	1	HuiQinBo	0		1900-01-01
	//	2	Andy		0		1901-02-02
	//	3	BoWen		1		1902-03-03
	var jsonStore = new Ext.data.JsonStore({					//创建新的数据源
		data:[													//数据项:如同数据库中的存储一样
			{id:1,name:'HuiQinBo',sex:'0',birthday:'1901-01-01'},
			{id:2,name:'Andy',sex:'0',birthday:'1902-02-02'},
			{id:3,name:'BoWen',sex:'1',birthday:'1903-03-03'}
		],
		//fields为列的定义, 指出数据源应该有几列,每列的名称和数据类型等信息,以上说明有4列;
		//列名分别为id,name,sex,brithday
		fields:['id','name','sex',{name:'birthday',type:'date',dateformat:'Y-m-d'}]		
	});
	
	//定义列
	var column = new Ext.grid.ColumnModel({
		columns:[
			checkBoxSelection,
			{header:'编号',dataIndex:'id',sortable:true},
			{header:'名字',dataIndex:'name'},
			{header:'性别',dataIndex:'sex'},
			{header:'生日',dataIndex:'birthday',renderer:Ext.util.Format.dateRenderer('Y-m-d')}
		]
	});
	
	//创建工具栏按钮, 可添加多个按钮,如'添加','删除','修改'
	var tbtn = new Ext.Toolbar.Button({
		 text: '查看选中项',
		 listeners: {
		     'click': function () {
		         var row = grid.getSelectionModel().getSelections();
		         for (var i = 0; i < row.length; i++) {
		             alert(row[i].get('id'));
	             }
	         }
	     }
	 });
	 
	//分页
	var pager = new Ext.PagingToolbar({		//创建一个分页控件
		pageSize:2,							//页码大小为2
		store:jsonStore,					//分布的数据源
		listeners:{//由于没有链接后台数据库动态绑定数据库,这里在,点下一页时‘beforechange’事件做了个 return false
			'beforechange':function(bbar,params){
				var grid = bbar.ownerCt;
				var store = grid.getStore();
				var start = params.start;	//起始数据的索引号
				var limit = params.limit;	//每页的大小
				console.log("<==下面是打印信息==>");
				console.log(store.getCount());
				console.log(start);
				console.log(limit);
				console.log("<===打印结束=====>")
				alert(store.getCount());
				return false;
			}
		}
	});
	
	//列表
	var gridPanel = new Ext.grid.GridPanel({	//创建一个新的grid
		sm:checkBoxSelection,
		title:'GridPanel',		//如果没有title就不会有列表上面的头
		height:200,
		store:jsonStore,		//数据源
		tbar:[tbtn],			//顶部的按键
		bbar:pager,				//底部的分页
		colModel:column			//列表头与列
		//renderTo:'hello'		//如果不想使用Window 和 form组件包含, 单独定义使用
	});
	
	//表单
	var form = new Ext.form.FormPanel({
		//title:'Form Title',
		frame:true,
		style:'margin:10px',
		items:gridPanel
		//renderTo:'hello'		//如果不想使用Window组件包含
		
	});
	
	//窗体
	new Ext.Window({
		title:'Window',
		width:476,
		height:375,
		items:gridPanel
	}).show();
	
});

 

 

4.  效果如下:



 

 

 

3. 说明:

//注1. 其实可以不使用Window组件包含form再包含GridPanel组件,

//        而直接使用Widnow包含GridPanel, 代码如下:
/*    new Ext.Window({
        title:'Window',
        width:476,
        height:375,
        items:gridPanel
    }).show();*/  
//同时删除form表单组件定义的代码
//这时就是Widow组件里面直接包含GridPanl样式.

//效果参照附件gridPanel_columnModel2.jpg



 

//注2. 根据项目需要也可以直接使用formPanel 包含GridPanel组件, 代码如下:
/*    var form = new Ext.form.FormPanel({
        title:'Form Title',
        frame:true,
        style:'margin:10px',
        items:gridPanel,
        renderTo:'hello'
       
    });*/
//同时删除Window组件定义的代码


 

//注3. 也可以不使用Window 和 Form组件, 而直接使用GridPanel组件:
/*var gridPanel = new Ext.grid.GridPanel({    //创建一个新的grid
        sm:checkBoxSelection,
        title:'GridPanel',        //如果没有title就不会有列表上面的头
        height:200,
        store:jsonStore,        //数据源
        tbar:[tbtn],            //顶部的按键
        bbar:pager,                //底部的分页
        colModel:column,            //列表头与列
        renderTo:'hello'
    });*/
//同时删除Window 和Form 组件定义代码



 

 

5. 项目代码请从附件[extjs_gridPanel_columnModel.zip] 中下载, 实例所涉及到的代码文件为以下两个:

    index.jsp    位于WebRoot/index.jsp

    gridPanel_columnModel.js    位于 WebRoot/study/gridPanel_columnModel.js

 

  • 大小: 188.8 KB
  • 大小: 196 KB
  • 大小: 130 KB
  • 大小: 162.9 KB
分享到:
评论

相关推荐

    无废话ExtJs 系列教程十八[继承:Extend]

    在"无废话ExtJS系列教程十八[继承:Extend]"中,我们主要关注的是ExtJS中的类继承机制,这是一个核心特性,它允许开发者创建可复用和可扩展的组件结构。在JavaScript中,继承是通过原型链实现的,而在ExtJS中,它被...

    无废话ExtJs 教程十[下拉列表:Combobox]

    本教程将深入探讨ExtJS中的Combobox组件,包括其基本用法、配置选项、事件处理和自定义功能。 1. **Combobox的基本结构** - Combobox由两个主要部分组成:文本输入框和下拉列表。用户可以在输入框中键入文字,或者...

    无废话ExtJs 系列教程十五[树:TreePanel]

    《无废话ExtJs系列教程十五:树:TreePanel》 ExtJs是一个强大的JavaScript库,用于构建富客户端Web应用。在本教程中,我们将深入探讨一个重要的组件——TreePanel,它是ExtJs用来展示层次结构数据的工具,常用于...

    无废话ExtJs 系统教程十九[动态复选框:RemoteCheckboxGroup]

    总之,"无废话ExtJs 系统教程十九[动态复选框:RemoteCheckboxGroup]"是一个帮助开发者掌握如何在ExtJS应用中实现动态复选框组件的资源。通过学习和实践,你可以创建出更加灵活和高效的用户界面,同时利用源码和工具...

    Extjs入门教程(treePanel和GridPanel)

    总的来说,这门入门教程将带你进入ExtJS的世界,通过TreePanel和GridPanel的实践,你将掌握基本的组件使用和数据管理技巧,为构建更复杂的企业级应用打下基础。记得在实践中不断探索和实验,理论结合实际,才能真正...

    无废话ExtJs 系列教程十三[页面布局:Layout]

    NULL 博文链接:https://huiqinbo.iteye.com/blog/2217105

    给Extjs的GridPanel增加“合计”行

    在EXTJS中,GridPanel是一种常用的组件,用于展示表格数据。在实际应用中,我们经常需要在GridPanel底部显示一行“合计”行,以便对某一列或多列的数据进行求和或其他统计操作。这篇博文“给Extjs的GridPanel增加...

    Extjs中的GridPanel

    GridPanel 是 ExtJS 中的核心组件之一,它提供了一种高效、可定制的方式来展示大量结构化数据。在这个主题中,我们将深入探讨 GridPanel 的关键特性和使用方法。 1. **GridPanel 基本结构**: GridPanel 包含了行...

    无废话ExtJs 教程十二[员工信息表Demo:AddUser]

    【标题】"无废话ExtJs 教程十二[员工信息表Demo:AddUser]"是一个针对初学者和进阶者设计的教程,旨在帮助他们更好地理解和应用ExtJS框架创建员工信息管理系统的添加用户功能。在本教程中,我们将深入探讨如何使用...

    ExtJs GridPanel双击事件获得双击的行

    在ExtJs中,GridPanel是用于展示数据的常用组件,它可以提供丰富的功能,如排序、分页、筛选等。在实际应用中,我们经常需要监听用户的交互行为,比如双击行进行进一步的操作。本篇文章将深入讲解如何在ExtJs ...

    EXTJS4.0视频教程配套代码

    第十四讲:extjs4.0的高级组件grid补充01选择模式selection和表格特性feature 第十五讲:extjs4.0的高级组件grid补充02插件和其他相关知识 第十六讲:extjs4.0的高级组件tree上 第十七讲:extjs4.0的高级组件tree...

    ExtJS介绍以及GridPanel

    在本文中,我们将深入探讨ExtJS的核心特性,特别是其GridPanel组件。 首先,ExtJS的核心特性之一是组件化。它将网页元素抽象为可复用的组件,如按钮、表格、窗口等,每个组件都有自己的属性、方法和事件,可以方便...

    Extjs2.02 Gridpanel

    【EXTJS 2.02 GridPanel 知识详解】 EXTJS GridPanel 是EXTJS库中的核心组件之一,尤其在EXTJS 2.02版本中,它提供了强大的表格展示和交互功能,对于初学者来说极具学习价值。GridPanel不仅能够处理基本的表格操作...

    ExtJs GridPanel延时加载.rar

    在给定的"ExtJs GridPanel延时加载.rar"文件中,主要涉及的核心概念是ExtJs中的GridPanel组件以及延时加载技术。GridPanel是ExtJs中一个非常重要的组件,它用于展示表格数据,而延时加载则是一种优化大量数据处理的...

    ExtJS 表格面板GridPanel完整例子

    ExtJS表格面板(GridPanel)是Sencha Ext JS框架中的一个核心组件,它用于展示大量结构化数据。在本文中,我们将深入探讨如何创建并使用一个完整的ExtJS GridPanel实例,以及与其相关的源码和工具。 首先,让我们...

    Extjs教程源码

    第十四讲: EXTJS4.0的高级组件Grid补充01选择模式Selection和表格特性Feature 第十五讲: EXTJS4.0的高级组件Grid补充02插件和其他相关知识 第十六讲: EXTJS4.0的高级组件Tree上 第十七讲: EXTJS4.0的高级组件Tree下 ...

    ExtJS的GridPanel导出excel文件

    ExtJS的GridPanel导出excel文件,方便快捷易懂!

    ExtJs视频教程整包打包

    Extjs4学习指南21集无代码 extjs网上商城项目 ExtJs视频教程 google调试extjs视频 从基础到实战ExtJs全程精通 传智蔡世友ExtJs视频教程 浪曦ExtJs,永久有效,所有视频解压密码相同,在文档中有写,如有问题请及时...

Global site tag (gtag.js) - Google Analytics