在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
相关推荐
在"无废话ExtJS系列教程十八[继承:Extend]"中,我们主要关注的是ExtJS中的类继承机制,这是一个核心特性,它允许开发者创建可复用和可扩展的组件结构。在JavaScript中,继承是通过原型链实现的,而在ExtJS中,它被...
本教程将深入探讨ExtJS中的Combobox组件,包括其基本用法、配置选项、事件处理和自定义功能。 1. **Combobox的基本结构** - Combobox由两个主要部分组成:文本输入框和下拉列表。用户可以在输入框中键入文字,或者...
《无废话ExtJs系列教程十五:树:TreePanel》 ExtJs是一个强大的JavaScript库,用于构建富客户端Web应用。在本教程中,我们将深入探讨一个重要的组件——TreePanel,它是ExtJs用来展示层次结构数据的工具,常用于...
总之,"无废话ExtJs 系统教程十九[动态复选框:RemoteCheckboxGroup]"是一个帮助开发者掌握如何在ExtJS应用中实现动态复选框组件的资源。通过学习和实践,你可以创建出更加灵活和高效的用户界面,同时利用源码和工具...
总的来说,这门入门教程将带你进入ExtJS的世界,通过TreePanel和GridPanel的实践,你将掌握基本的组件使用和数据管理技巧,为构建更复杂的企业级应用打下基础。记得在实践中不断探索和实验,理论结合实际,才能真正...
NULL 博文链接:https://huiqinbo.iteye.com/blog/2217105
在EXTJS中,GridPanel是一种常用的组件,用于展示表格数据。在实际应用中,我们经常需要在GridPanel底部显示一行“合计”行,以便对某一列或多列的数据进行求和或其他统计操作。这篇博文“给Extjs的GridPanel增加...
GridPanel 是 ExtJS 中的核心组件之一,它提供了一种高效、可定制的方式来展示大量结构化数据。在这个主题中,我们将深入探讨 GridPanel 的关键特性和使用方法。 1. **GridPanel 基本结构**: GridPanel 包含了行...
【标题】"无废话ExtJs 教程十二[员工信息表Demo:AddUser]"是一个针对初学者和进阶者设计的教程,旨在帮助他们更好地理解和应用ExtJS框架创建员工信息管理系统的添加用户功能。在本教程中,我们将深入探讨如何使用...
在ExtJs中,GridPanel是用于展示数据的常用组件,它可以提供丰富的功能,如排序、分页、筛选等。在实际应用中,我们经常需要监听用户的交互行为,比如双击行进行进一步的操作。本篇文章将深入讲解如何在ExtJs ...
第十四讲:extjs4.0的高级组件grid补充01选择模式selection和表格特性feature 第十五讲:extjs4.0的高级组件grid补充02插件和其他相关知识 第十六讲:extjs4.0的高级组件tree上 第十七讲:extjs4.0的高级组件tree...
在本文中,我们将深入探讨ExtJS的核心特性,特别是其GridPanel组件。 首先,ExtJS的核心特性之一是组件化。它将网页元素抽象为可复用的组件,如按钮、表格、窗口等,每个组件都有自己的属性、方法和事件,可以方便...
【EXTJS 2.02 GridPanel 知识详解】 EXTJS GridPanel 是EXTJS库中的核心组件之一,尤其在EXTJS 2.02版本中,它提供了强大的表格展示和交互功能,对于初学者来说极具学习价值。GridPanel不仅能够处理基本的表格操作...
在给定的"ExtJs GridPanel延时加载.rar"文件中,主要涉及的核心概念是ExtJs中的GridPanel组件以及延时加载技术。GridPanel是ExtJs中一个非常重要的组件,它用于展示表格数据,而延时加载则是一种优化大量数据处理的...
ExtJS表格面板(GridPanel)是Sencha Ext JS框架中的一个核心组件,它用于展示大量结构化数据。在本文中,我们将深入探讨如何创建并使用一个完整的ExtJS GridPanel实例,以及与其相关的源码和工具。 首先,让我们...
第十四讲: EXTJS4.0的高级组件Grid补充01选择模式Selection和表格特性Feature 第十五讲: EXTJS4.0的高级组件Grid补充02插件和其他相关知识 第十六讲: EXTJS4.0的高级组件Tree上 第十七讲: EXTJS4.0的高级组件Tree下 ...
ExtJS的GridPanel导出excel文件,方便快捷易懂!
Extjs4学习指南21集无代码 extjs网上商城项目 ExtJs视频教程 google调试extjs视频 从基础到实战ExtJs全程精通 传智蔡世友ExtJs视频教程 浪曦ExtJs,永久有效,所有视频解压密码相同,在文档中有写,如有问题请及时...