首页 > 其他 > 详细

GT-Grid的初学

时间:2014-04-11 18:02:39      阅读:590      评论:0      收藏:0      [点我收藏+]

GT-Grid

 1.简介:

GT-Grid 是一个基于Ajax技术的列表组件.
拥有丰富的功能以及良好易用性和用户体验.
它是 EC Side列表组件 的更新换代产品.
(ECSide是GT-Grid作者的另一作品,
是一个在国内拥有广泛用户群的列表组件,它基于传统的jspTag技术)

 2.GT-Grid 所需文件

bubuko.com,布布扣

 3.初学实例

(1)首先在index.jsp中引入js和css文件

<link rel="stylesheet" type="text/css" href="gt-grid/gt_grid.css" />
     <script type="text/javascript" src="gt-grid/gt_msg_cn.js"></script>
     <script type="text/javascript" src="gt-grid/gt_grid_all.js"></script>


(2)在jsp中写js代码(GT-GRID代码)

     主要就是以下几步:  

       1. var data1 ...       //定义数据 

数据必须为一个json数组, 数组中的每一项为一个 js对象/js数组.两种形式的数据都是可以的.(但是不能混合使用).  一般使用js对象(绝大多数 json的第三方转换工具 都会将pojo map等转换成第一种形式的json数据. 而且也更便于反向转换
数组中的每一项 代表 单条数据. 简称 record. 

           

//1.创建数据      var data1 ...
	var data1 = [ {
		no : 1,
		name : ‘aaa‘,
		age : 12,
		gender : ‘M‘,
		english : 76.5,
		math : 92
	}, {
		no : 2,
		name : ‘bbb‘,
		age : 11,
		gender : ‘F‘,
		english : 89,
		math : 87
	}, {
		no : 3,
		name : ‘ccc‘,
		age : 13,
		gender : ‘F‘,
		english : 53,
		math : 62
	}

	];

       2. var dsConfig ....   //定义数据集

有了数据还不够, 因为GT-Grid未必就能理解这些数据, 你还需要对数据进行简单的描述.这个描述就是定义数据集. 

//2.创建数据集   var dsConfig ....
	var dsConfig = {
		data : data1,

		fields : [ {
			name : ‘no‘,
			type : ‘int‘,
			index : ‘no‘
		}, {
			name : ‘name‘,
			type : ‘string‘,
			index : ‘name‘
		}, {
			name : ‘age‘,
			type : ‘int‘,
			index : ‘age‘
		}, {
			name : ‘gender‘,
			type : ‘string‘,
			index : ‘gender‘
		}, {
			name : ‘english‘,
			type : ‘float‘,
			index : ‘english‘
		}, {
			name : ‘math‘,
			type : ‘float‘,
			index : ‘math‘
		} ]
	};
      

代码讲解:

      data 指向 之前的数据.  

      fields 是一个数组, 描述record各个字段的信息,类似数据库表中的列信息.  
      name :  字段的名字 (虽然时name 但是性质和id类似, 在一个数据集内要保持唯一性)       type : 字段的类型  ( 目前只支持 string ,int, float , 为什么没有date类型?因为我觉得       没必要,以后我会找机会解释一下我的想法和建议)  
      index : 字段对应的"record的属性名". 根据index,GT-Grid就可以知道这一列 对应的         时record哪个属性的值.  
      index说白了就是你数据库里面的列名;也可以说成是:通过后台转换后生成的json       格式数据里面的key;   
      当 type 为 string 时, 可省略type设置.  
      当 index 和 name 一致时, 可省略 index设置.

       3. var colsConfig ...  //定义列信息 

  定义每一列的列标头和以及该列对应的数据 

	//3.设计列 var colsConfig ...
	var colsConfig = [ {
		id : ‘no‘,
		header : "学号",
		fieldName : ‘no‘
	}, {
		id : ‘name‘,
		header : "姓名",
		fieldName : ‘name‘
	}, {
		id : ‘age‘,
		header : "年龄",
		fieldName : ‘age‘
	}, {
		id : ‘gender‘,
		header : "性别",
		fieldName : ‘gender‘
	}, {
		id : ‘english‘,
		header : "英语",
		fieldName : ‘english‘
	}, {
		id : ‘math‘,
		header : "数学",
		fieldName : ‘math‘
	} ];

 对各个参数的解释: 
           id : 列的唯一标识, 必须保证列表内唯一,建议整个页面唯一.  

           header : 列表的表头显示的文字信息.    

           fieldName : 列表的该列对应的 dataset(数据集)中的列(字段).


       4. var gridConfig .... //定义gt-grid控件

//4.设计grid的参数   var gridConfig ....
	var gridConfig = {

		id : "grid1",

		dataset : dsConfig,

		columns : colsConfig,

		container : ‘grid1_container‘,

		toolbarPosition : ‘bottom‘,

		toolbarContent : ‘state‘

	};


对各个参数的解释: 
            id : 每个列表组件都有一个id 该id在页面内唯一. 
           dataset :列表对应的数据集 
           container : 列表的容器的id. 列表最后是要显示在页面中某个位置.这个容器就是              那个"位置",通常是一个div或者时td. 
           toolbarPosition : 工具栏的位置. 可选值:‘top‘/‘bottom‘/null,  暂时不支持上下都显           示. 
           toolbarContent : 工具栏上要显示的东西, state表示的数据数量信息(分页信息),如            共几条 共几页 当前是第几条等等.这个属性的其他用法暂时先不用管.

       5. var mygrid=new GT.Grid( gridConfig ); 

定义并创建GT-Grid对象.创建GT-Grid对象的方法

   

//5.var mygrid=new GT.Grid( gridConfig );定义并创建GT-Grid对象.创建GT-Grid对象的方法
	var mygrid = new GT.Grid(gridConfig);



       6. GT.Utils.onLoad( GT.Grid.render(mygrid) );//onLoad加载

//6. load加载
	GT.Utils.onLoad(GT.Grid.render(mygrid));

  (3)jsp的body里面放入一个div,作为gt-grid的一个容器,用来显示对应的数据!
<body>
	<!-- grid的容器. -->
	<div id="grid1_container" style="width:700px;height:300px"></div>

    </body>

         效果:

          bubuko.com,布布扣


4.进一步完善

  Renderer方法: 

      单词的意思:渲染器,描绘器; 

      在gt-grid里面叫做叫做"扩展显示列". 作用是:用来显示一些数据以外的东西 

        比如:一个按钮或者是图片 或者是链接, 点击后可以执行一些特殊的操作   如: 

var colsConfig = [ 
 /* ...其他column略 ...  */ 
 { id : ‘detail‘   , header : "详细信息" , width : 120,   renderer : function(value ,record,columnObj,grid,colNo,rowNo){    return ‘<a href=".?no=‘+record[‘no‘]+‘" >‘+ record[‘name‘] +‘ 的详细信息</a>‘; 
  } 
 } ]; 

 
column.renderer 函数的返回值 是一个合法的html字符串. 这个返回值将显示在表格的

相应单元格内.  
renderer 函数的里面会有 6个参数,依次为  
1. value : 相应单元格对应的数据值 (本例中为null, 因为数据集中 根本就没有detail列)    
2. record : 迭代中当前的record    

3. columnObj : 当前的column对象, 

4. grid : 当前的grid对象.  

5. colNo : 当前的列号    

6. rowNo : 迭代中当前的行号   


个性化渲染列

var colsConfig = [    
           /* ...其他column略 ...  */   
           { id : ‘total‘   , header : "总成绩" , width : 70 , align :‘right‘, 
  renderer : function(value ,record,columnObj,grid,colNo,rowNo){    
                    var total = record[‘total‘];                        if (total>170) {                             total =  ‘<span style="color:red" >‘+ total +‘</span>‘;    
                    }else if (total<120) {    
                         total = ‘<span style="color:blue" >‘+ total +‘</span>‘;                       }    
                   return total;               } }];


 toolbarContent:工具栏 

 toolbarContent : ‘nav | goto | pagesize | state‘ ,    大家要注意, nav ,| ,state 三者之间

空格间隔.  nav:代表的就是 导航按钮区. 

导航区中包含了 四个按钮: 第一页 前一页 后一页 最后一页 

goto :"直接调转到指定页"的功能.

pageSize :页容 

toolbarPosition : 工具栏的位置. 可选值:‘top‘/‘bottom‘/null,  暂时不支持上下都显示.

remotePaging :是否远程分页(true、false) 

loadURL:分页的连接(比如:loadURL:’totalfieldpage.action’);如果有命名空间的

话,一定要加上命名空间,如果没有的话,可以放个action


效果:

bubuko.com,布布扣


GT-Grid的初学,布布扣,bubuko.com

GT-Grid的初学

原文:http://blog.csdn.net/yantingmei/article/details/23371821

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!