该版本对前一版代码进行了重构,代码更精简,功能上也有所提升.详细功能列表如下:

跨浏览器,在ie和firefox下均可顺利运行。

嵌套的表头定义,不限层次深度。

列锁定,你可以指定表格最前面多少列是不允许横向滚动的。

标题锁定,假如需要纵向滚动,表格标题不会被隐藏。

简洁强大的列模型定义:你可以指定每一列数据来源、值类型、列宽度、列align方式、列标题。可申明的值类型暂时只包含:string、number、boolean、link、select、percent。其中number和percent还可以指定小数位格式,比如#.00表示强制保留两位小数。

支持ognl方式定义列的数据来源,假如,表格绑定的是person集合,person关联到部门,那么你可以把显示部门名称的这一列申明为name:”deparment.name”。

行聚合功能,允许客户代码设置某些列的聚合函数,控件能够根据聚合函数生成合计行。目前允许的聚合函数有:sum,avg,min,max。

三种界面绘制模式:绘制可见行、绘制所有行、自动判断模式。模式一允许你向控件绑定大量数据,但控件只绘制当前可见行,用户可以拖动纵向滚动条来查看其它行的数据。模式二让控件一次性绘制所有行,在适量数据情景下,该模式让控件运行更流畅,用户体验更佳。模式三让控件根据某个临界值自动判断按第一或者第二模式来绘制界面,让你的界面智能兼顾大数量和小数量情景下的用户体验。

排序功能,允许开发者指定哪些列是可以被排序的。当用户点击可以排序列的列标题时,控件对所有行进行排序。

只读属性,开发者可以指定某列或者整个表格的readonly属性。

表达式功能,允许列的数据根据表达式计算。

手动列宽调整功能,允许用户手动调整列宽度。

焦点单元格管理功能,按回车键,焦点下移一行。按Tab键,焦点右移一列。

单元格编辑功能,当焦点在某个可编辑单元格时,该单元格显示一个编辑器,编辑结束焦点移开单元格的时候,该单元格恢复为绘制器。

可插拔的值类型,你可以自定义一种值类型,并注册到表格。

可按列定义的单元格绘制器和编辑器,界面开发者可以随时为列定义特殊的绘制器和编辑器。

允许运行时增加行或者删除行。

两种行选择模式,可以为控件指定行的选择模式为单选或者多选模式。

可根据表达式计算某个列的单元格是否可编辑。

事件触发,当单元格的值被改变时,出发onCellValueChanged事件。

分页导航功能,允许界面开发者为控件指定一个PageControl对象,该对象有两个重要属性:pageSize用来控制每页行数,callback用来指定翻页时要回调的函数。如果翻页时是不需要查询条件的,callback可以设置为一个url,控件在翻页时自动在这个url附上pageSize和pageIndex参数。如果需要查询条件的,需要设置callback为一个函数对象,由callback执行条件查询,并返回page对象。

企业版功能:
分页打印支持,生成打印控制界面,允许开发者设置:表头是否在后序页面重复、页面的Head区域、Foot区域、可选纸张类型,允许用户选择纸张类型、可显示列。该功能需要第三方控件的支持。

分组聚合运算,指定表格根据哪些对象属性对对象的某些属性进行聚合运算(min,max,avg,sum),并把计算结果显示到分组合计行中。
评论
peifg 2007-06-11
谢谢楼主这么快就回复,
第一个问题自己解决了

var sgrid_LinkRender = new function(){
this.paint = function(grid,row,col){
var data = row.getCellValue(col);
var t=[];
t[0] = '<a href="javascript:' + col.href + '('
t[1] = + row._rId
t[2] = ',\''+ data + '\');">'
t[3] = data + '</a>'
return t.join('');
}
}
这个函数改成下面这个形式,就可以了

var sgrid_LinkRender = new function(){
this.paint = function(grid,row,col){
var data = row.getCellValue(col);
var t=[];
t[0] = '<a href="#" onClick="javascript:' + col.href + '('
t[1] = + row._rId
t[2] = ',\''+ data + '\');">'
t[3] = data + '</a>'
return t.join('');
}
}

第二个问题 还请教楼主应该怎么修改,可否给我一份最新的修改过的版本
peifugen@gmail.com
或者企业版多少钱?
hexiaodong 2007-06-11
第二个问题已经解决了的。
第一个问题需要调试看看。

另外维护两个版本有点烦,我已经不再维护开源免费版了。需要用最新版的只能请你购买企业版。
peifg 2007-06-10
我有几个问题想请教啊:
第一:{name:"deleteFlag",caption:"删除操作",width:80,mode:"link",href:"del_conditions",sortable:false,align:'left'}

grid = new SigmaGrid("colList",context,columns);

function del_conditions(a,b,c){
alert("aaaaaaaaaaa");
}

当这个grid 是在一个普通的页面时,点击调用del_conditions这个函数正常,可是当这个页面是showModalDialog出来的时候,点击调用del_conditions就会长生错误。
请问这是怎么会事呢?

第二:
当grid = new SigmaGrid("colList",context,columns);中的colList这个DIV的长度不够时,div和grid都会出现滚动条,不美观。请问有没有办法缩短grid,因为grid只有两列的时候是那么长三列时也是那么长。
zgdhj95 2007-06-07
企业版多少钱?
hexiaodong 2007-04-26
动态改变某个select模式列的选项代码如下:
var col = grid.getColByName("sex");
col.options = sexoptions;


谢谢支持。
lw178038 2007-04-26
另外想问一下,关于列定义中可能会有select的属性options为一个变量,应该怎么定义呢?例如:
{name:"sex",caption:"性别",width:60,mode:"select",options:[ {id:"male",name:"男"},{id:"female",name:"女"}
]},
其中我定义了一个单独的变量sexoptions=[{id:"male",name:"男"},{id:"female",name:"女"}],请问怎么加入到这一列的options中去呢?
麻烦指点,谢谢!
lw178038 2007-04-26
查看源码后发现我的做法是老版本的,应该改为调用s_grid_onCellLink方法。一下写法对马:
function s_grid_onCellLink(a,b,c){
//得到当前行的数据
var rows = grid.rows;
alert(rows[b-1].rowData.staffNo);
}
再一次希望有这个出色的ui控件的api说明文档或者一个完整的例子,看源码超级累啊!
lw178038 2007-04-26
如果指定列中有link如下
{name:"staffNo",caption:"工号",width:60,mode:"link",href:"nameClicked"},
然后在定义方法nameClicked中并不能执行程序,能否有个链接的例子呢?在请帮忙如果有份API的简单介绍就更好了。目前正准备做个demo给老板看,如果老板有意向的话,会考虑付费请你作项目的技术支持的
hexiaodong 2007-04-25
打印功能在企业版提供,文档制作中
zack 2007-04-25
楼主是否能够提供详细一些的文档,这次改动还是比较大的,以前做的都要进行修改的。
dafuh 2007-04-25
能提供打印功能吗?
wxn_yxm 2007-04-25
有改进,值得学习.
hexiaodong 2007-04-20
呵呵,新版本允许一次性绘制。如果表格有几百行数据的话,表格列宽跟着表头列宽一起动的话,界面停滞现象严重。所以改成现在这样了
pragmatic 2007-04-20
楼主,改变列宽的时候下面的线怎么跟不上呀!感觉很不爽
hexiaodong 2007-04-20
formula:"p$('number')*p$('percent')"
这里的number和percent指的就是对象属性名称,而不仅仅是列名
pragmatic 2007-04-20
一直期待楼主有新的更新,在此谢谢了!
zack 2007-04-20
但是我计算的时候要用到这个列的值,比如B列我不用显示,但是我在编辑A列的时候,要计算C列,计算公式为C = A*B
hexiaodong 2007-04-20
在sigmawidgets.htm中,行对象里面的department.id没有被显示出来吧。如果行对象中的某些属性不需要显示,那就不要定义到列头里面去。
zack 2007-04-20
下了最新版的,不过合计的刷新好像还是有点问题
如果该列没有合计 但是改了值后,会出现一个合计(好像是最后一个合计的值)
zack 2007-04-20
如何隐藏一个列
某些列我可能计算需要,但是不需要显示
有这个功能吗?
hexiaodong
搜索本博客
最近加入圈子
存档
最新评论
评论排行榜