`

[发布] GT-Grid 1.12 版 (080904发布) ★

阅读更多
GT-Grid 1.12版 说明文档.

这篇文档主要说明一些这个版本的变化(新增功能 新特性)


========================================

首先来说一下关于列表的创建函数.

在以前的示例中, 有这样的代码:
GT.Utils.onLoad( GT.Grid.render(mygrid) );


它的意思是 在页面载入时 创建列表. 但是由于我设计上的失误,导致这个示例很容易误导大家.
让开发人员以为 GT.Grid.render(mygrid) 是用来创建列表的.

其实不是, GT.Grid.render 的结果是返回一个函数 这个函数才是用来创建表格的.
这里比较绕,所以 我决定反对使用  GT.Grid.render函数.


如果要在页面载入时创建表格 请使用下面的代码
GT.Utils.onLoad( function(){
	mygrid.render();
} );




如果想在其他时机 (如按某个按钮之后)创建 那么就在相应的时机调用
"mygrid.render();" 即可.

另外再重申一下函数 GT.$grid("你的grid的id") ,这个函数是通过id取得列表对象.



==============================



新增属性:
grid.selectRowByCheck : false/true ;

当列中有checkBox列时, 如果selectRowByCheck==true ,那么选中一行的效果将通过选择checkBox来实现.


新增方法
grid.getSelectedRecords()
取得所有选中行对应的记录.



==============================


column.renderer 支持字符串模板
column.renderer 除了可以是一个函数之外, 还可以是一个字符串模板.例如

renderer : "@{age}岁"
那么这列数据 就会变为 "相应记录的age字段的值 + '岁'


renderer : "@{age}岁"  
相当于

renderer : function(value,record){
	return record['age']+'岁';
}




==============================

exception回调函数 :
在执行load 和save 操作后, 处理服务端返回的异常的函数如下:


// grid.loadFailure(responseJson)

	// 默认函数实现
	loadFailure : function(respD){
		alert(' LOAD Failed! '+'\n Exception : \n'+(respD[this.CONST.exception]||''));
	},

// grid.saveFailure(responseJson)

	// 默认函数实现
	saveFailure : function(respD){
				alert(' SAVE Failed! '+'\n Exception : \n'+(respD[this.CONST.exception]||''));
	}



responseJson为服务端返回的json对象.


大家可以通过重写这两个方法 来实现自己的对异常信息的处理.




==============================

工具栏上的简单按钮  现在支持 自定义.

自定义的方法是,首先是定义按钮并注册 然后在toolbarContent里面设置即可.

定义并注册按钮的方式如下:


GT.ToolFactroy.register(
	'mybutton',  //按钮的标识 (请使用全小写字母)
	{
		// cls 为按钮的样式,目前只支持简单按钮,简单按钮的样式请这样写:
		// .mybutton-cls { 
		//		background : url(./mybutton.png) no-repeat center center; 
		// }
		cls : 'mybutton-cls',  
		// 按钮的提示信息
		toolTip : '自定义按钮:显示列表的id',
		
		// 点击按钮时 执行的动作
		action : function(event,grid) {  alert( 'The id of this grid is  '+grid.id)  }
	}
);


按钮定义的形式 如上面代码中的注释所示, 就不再多说了.
GT.ToolFactroy.register( key , options)
这个函数 负责将 定义的按钮以 key的名字注册


然后就可以在 toolbarContent 中来指定在什么位置显示这个自定义按钮了.


==============================


以上的说明不是很详细, 建议大家结合 mydemo_for_1.12.html 这个示例来看一下.



==============================


关于GT的更多介绍可以参加下面两个地址

具体文档请参见下面地址:
列表组件 GT-Grid 最新版本 & 教程

与服务端结合的例子(8月3日版本)
与服务端结合的例子
========================================


分享到:
评论
42 楼 lydawen 2008-09-07  
supercwg 写道
我现在使用的是springside的struts2,如何在在Action里面输出json串来呈现数据啊?能够提供具体的配置过程吗?如果springside能够与gtgrid集成,那就真是强强联合啊,请不吝赐教啊


<action name="customerList" class="customerAction" method="customerList">
  <result name="json" type="stream">
    <param name="inputName">inputStream</param>
    <param name="contentType">text/xml;charset=utf-8</param>
    <param name="contentDisposition">inline</param>
    <param name="bufferSize">2048</param>
  </result>
</action>	

//上面在struts.xml 里配置。
//action 里:

private InputStream inputStream;

public String customerList{
StringBuffer outStringBuffer=new StringBuffer();
this.outStringBuffer.append("{data:[{ no : 3 , name :'ccc', age : 13, gender : 'F' , english : 53   , math :62 } ");
this.outStringBuffer.append("]");
this.outStringBuffer.append("}");
this.inputStream=new ByteArrayInputStream(outStringBuffer.toString().getBytes("utf-8"));
System.out.println(outStringBuffer.toString());
return "json";
}


	public InputStream getInputStream() {
		return inputStream;
	}
	public void setInputStream(InputStream inputStream) {
		this.inputStream = inputStream;
	}




格式就不调 了。。。。。将就看一下吧
41 楼 xuyemao 2008-09-07  
请问如何输出调试信息
比如我要做一个更新操作
saveURL=update.php,  (后台是php处理)

我要在update.php文件中如何查看接收到的json参数
为什么我在update.php 这个文件中echo 出来没有任何反应
40 楼 southgate 2008-09-06  
我自己写了一个导出xls的方法
需要得到过滤条件
你的load方法会自动把所有条件都传到后台
我自己应该怎么拼这些条件呢?

39 楼 feohoo 2008-09-06  
引用

feohoo 1 小时前
嗯,是的080904版本支持这种功能,但是在进行后台数据save的时候,insertedRecords内容始终为空,请问是怎么回事啊


具体代码如下,请看哈那个属性没定义呢,updateRecords和deleteRecords有记录
<script type="text/javascript" >
var S="string";
var APP_PATH='<%=path%>';
var projectid={
	id : 'Id' , header : "ID" ,hidden:true, width : 50
};
var grid_demo_id = "myGrid1" ;
var dsConfig={
	fields :[{
		name : 'projectId' , type: S
	}
	,{
		name : 'projectName' , type: S
	}
	,
	]
}
var colsConfig = [
projectid,{
	id : 'Name' , header : "名称" , width : 130,editor:{
		type :'text' ,validRule : 'R'
	}
}
];
var gridConfig={
	showIndexColumn : true,
	debug : true,
	id : grid_demo_id,
	loadURL : APP_PATH+'/list.do' ,	// './_server/students.info.js' ,
	saveURL : APP_PATH+'/save.do' ,	// './_server/students.save.js',
	width: "900", //"100%", // 700,
	height: "530", //"100%", // 330,
	container : 'mygrid_container',
	remotePaging : false ,
	toolbarPosition : 'top',
	toolbarContent : 'nav | goto | pagesize | reload | add del save | print | filter chart | state',
	lightOverRow : true,
	encoding : 'UTF-8', // GT.$encoding(),
	pageSize : 15 ,
	pageSizeList : [5, 10,15,20,30,50,100,200],
	pageStateBar : null , //'outStateBar',
	dataset : dsConfig ,
	columns : colsConfig ,
	clickStartEdit : false ,
loadResponseHandler : function(response,requestParameter){
}
,
saveResponseHandler : function(response,requestParameter){
	alert("数据操作成功!");
}
,
customHead : null, //'myHead',
resizable : true, // 整个列表区域是否可改变大小 (当toolbar在上面时 无论该属性如何设置 都不允许调整大小)
defaultRecord : [
],
beforeLoad : function(reqParam){
}
,
beforeSave : function(reqParam){
}
,
onDblClickCell : function(value, record , cell,row, colNO, rowNO,column,event){
	alert(cell.innerHTML);
}
,
clickStartEdit : true
};
var mygrid=new GT.Grid( gridConfig );
GT.U.onLoad( GT.Grid.render(mygrid) );
function unlockAllColumn(){
	GT.Column.unlockAllColumn(grid_demo_id);
}
function lockColumnNAllBefore(){
	GT.Column.lockColumnNAllBefore(grid_demo_id,GT.$("idx2").value);
}
function showGrid(){
	if (GT.$('bigbox').style.display!="none"){
		GT.$('bigbox').style.display="none";
	}
	else{
		GT.$('bigbox').style.display='';
		mygrid.onShow();
	}
}
function lazyLoad(){
	mygrid.refresh(createTestData( TEST_TOTAL ));
}
function init(){
}
</script>

38 楼 feohoo 2008-09-05  
嗯,是的080904版本支持这种功能,但是在进行后台数据save的时候,insertedRecords内容始终为空,请问是怎么回事啊
37 楼 fins 2008-09-05  
ecside 早已经不再维护了

请不要咨询任何关于ecside的问题了 谢谢
请见谅
36 楼 supercwg 2008-09-05  
为什么ecside控件的RequestUtils.getLimit(getRequest()).getPage()取出来的值是正确的,而RequestUtils.getLimit(getRequest()).getCurrentRowsDisplayed()就永远都是0的?
35 楼 fins 2008-09-05  
tangrenzhong116 写道
能实现行显示指定颜色吗?比如100行数据,库存少于警戒线的整行都显示红色,这个属性是哪个呢?
以前实现方法是:<td width="5%" bgcolor='<bean:write name="weeklist" property="COLOR" />'><div align="center"><bean:write name="weeklist" property="COMPLETE_NUM" /></div></td>通过 后台指定COLOR,,现在用了控件后不知道怎么实现了?谢谢指教



目前只能利用column的renderer来实现
34 楼 fins 2008-09-05  
feohoo 写道
老大在080803版本中的,对单元格赋值的处理方法,能否有现在的方法:
var myDialogEditorCreater = new GT.DialogEditor({
id: "myDialogEditor1",
gridId : "myGrid1" ,
width: 250,
height:150 ,
title : '选择的数据信息',
body : ['<br><input id="my_name_input" style="width:99%" onClick="alert(\'可以在这里发送一个请求进行数据交互\');"/><br/><br><input name="sir" id="sir" onClick="mmo();";>',
'<input type="button" value="确定" onclick="GT.$grid(\'myGrid1\').activeDialog.confirm()"/>'].join(''),
类似的方法没,
=====================================================
就是相当于自己开发单元格编辑器,同时怎样对这个单元格赋值啊


没太明白你的意思

现在 9月4号的版本 也是支持的啊

33 楼 southgate 2008-09-04  
解决了
谢谢
32 楼 tangrenzhong116 2008-09-04  
能实现行显示指定颜色吗?比如100行数据,库存少于警戒线的整行都显示红色,这个属性是哪个呢?
以前实现方法是:<td width="5%" bgcolor='<bean:write name="weeklist" property="COLOR" />'><div align="center"><bean:write name="weeklist" property="COMPLETE_NUM" /></div></td>通过 后台指定COLOR,,现在用了控件后不知道怎么实现了?谢谢指教
31 楼 feohoo 2008-09-04  
老大在080803版本中的,对单元格赋值的处理方法,能否有现在的方法:
var myDialogEditorCreater = new GT.DialogEditor({
id: "myDialogEditor1",
gridId : "myGrid1" ,
width: 250,
height:150 ,
title : '选择的数据信息',
body : ['<br><input id="my_name_input" style="width:99%" onClick="alert(\'可以在这里发送一个请求进行数据交互\');"/><br/><br><input name="sir" id="sir" onClick="mmo();";>',
'<input type="button" value="确定" onclick="GT.$grid(\'myGrid1\').activeDialog.confirm()"/>'].join(''),
类似的方法没,
=====================================================
就是相当于自己开发单元格编辑器,同时怎样对这个单元格赋值啊
30 楼 fins 2008-09-04  
southgate :

你后台重新返回 新的 totalRowNum 了吗?你要传一个新的到前台


zjsword
不知道啊 不了解那两个软件
29 楼 zjsword 2008-09-04  
弱弱的问问,这个东西可以不可以和ireport+jasperReport结合起来啊
28 楼 southgate 2008-09-04  
filter过滤的问题

不论是前台还是后台过滤,state的总记录数都不会变化
这个挺郁闷的,
我是把这个功能拿来当查询条件的.
27 楼 fins 2008-09-04  
用新版本试一试吧
26 楼 songuo 2008-09-04  
引用

songuo 你用的什么版本??
我这边早就没有 mydemo3.html这个例子了


我下载的是gtdemo_080803_0130.zip,使用的是里面\gtdemo_080803_0130\gtdemo\WebContent\gt-grid的例子。
25 楼 fins 2008-09-04  
supercwg 写道
我现在使用的是springside的struts2,如何在在Action里面输出json串来呈现数据啊?能够提供具体的配置过程吗?如果springside能够与gtgrid集成,那就真是强强联合啊,请不吝赐教啊


你参考这个里面的例子看一下

http://fins.iteye.com/blog/219217

我没用过 struts2 不过应该类似吧

struts2 里虽然不支持直接操作 request
但是 他肯定有办法 拿到 request里的 _gt_json这个parameter的吧
而且 我想它的action也一定支持像response里输出流

所以 应该没问题

24 楼 fins 2008-09-04  
songuo  你用的什么版本??
我这边早就没有  mydemo3.html这个例子了
23 楼 songuo 2008-09-04  
引用

songuo 1 小时前
补充:运行的是mydemo3.html页面

songuo 1 小时前
不知是不是BUG?
跳转到指定页,如果是在第1页,然后连续点击跳转到第1页,然后弹出IE遇到问题需要关闭,试过很多次都出现同样的问题。



就是频繁的点击“跳转到指定页”按钮就会出现如下图错误,试过2台电脑

测试数据为1000条

http://songuo.iteye.com/upload/picture/pic/21231/dfa7194f-736f-398d-bd2e-873e473c721b.png

相关推荐

Global site tag (gtag.js) - Google Analytics