`
hexiaodong
  • 浏览: 65217 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

升级的浏览器UI组件

阅读更多
在“交流web上的UI组件,我来开个头 这篇帖子了,我把自己写的一些浏览器UI组件和大家交流了一下,还是由很多人感兴趣的,也对这些组件指出了一些不足之处。
 
最近难得有闲,准备把这些UI组件重写一遍。断断续续写了几天后已经有一些进展了,最先初具形状的是Grid组件。但该组件和原先的SigmaGrid并不相同,在新的版本中,我想把它和SigmaList功能合二为一。在旧的版本中,SigmaGrid主要用于少量对象集合的编辑和展示,比如:在订单编辑界面中,可以SigmaGrid来展示和编辑订单明细对象。而SigmaLIst主要用于大量对象集合的展示,不具备编辑功能,它主要用于一些报表界面中。在新的SigmaWidgets中,我希望SigmaGrid具备以上所有功能。
 
但目前还没有完整实现我的设想,到目前为止新版的SigmaGrid仅仅实现了旧版中SigmaList功能,但这次实现已经具备跨浏览器能力,至少,它可以很好地运行在ie和firefox下。列一下目前的功能吧:
  1. 跨浏览器。
  2. 可以加载大数据量,事实上无论你绑定的数据中有多少个对象,组件只会画出当前可见的那些对象。因此,组件绑定数据本身的过程是很短暂的。但滚动条滚动的过程不是很流畅。
  3. 嵌套的表头定义,不限层次。
  4. 丰富的列属性可供设置:你可以指定每一列数据来自对象的哪个属性、属性值类型、列宽度、列align方式、列标题。可申明的值类型暂时只包含:string、number、date、boolean、link、select、percent。其中number和percent还可以指定小数位格式,比如#.00表示强制保留两位小数。
  5. 支持ognl方式定义列的数据源,假如,表格绑定的是person集合,person关联到部门,那么你可以把显示部门名称的这一列申明为name:”deparment.name”。
  6. 列锁定,你可以指定表格最前面多少列是不允许横向滚动的。
  7. 标题锁定,假如需要纵向滚动,表格标题不会被隐藏。
废话少说,大家下载代码看看吧。希望能看到热烈的交流。
分享到:
评论
69 楼 zack 2007-03-07  
由于我要判断某一单元是否为只读的逻辑比较复杂,有可能还要调用xmlhttp来取后台数据的,如果能够做成去触发一个事件然后再返回是否只读标志就最好了
68 楼 hexiaodong 2007-03-07  
1、为什么非的自己代码设置readonly,可以在列上申明readonly:"表达式",现在这个grid,没有地方为每个单元格保存readonly属性的

2、我给你增加了一个方法,getSelectedRowsValue = function(colNames){},colNames是包含列名的数组,如果colNames==null,返回选中行对象集合;如果colNames!=null,返回经过属性裁剪的行对象的集合
67 楼 zack 2007-03-06  
还有两个问题要问一下楼主:
1、grid.getColByName('zjz').readonly = true;是将所有zjz这列都设置成只读,如果我只想设置当前行的zjz这列为只读应该怎么做?
2、我想取得所有选中行的指定列的值应该怎么取?
谢谢
66 楼 zack 2007-03-05  
那个报错是我的问题的
65 楼 zack 2007-03-05  
还有个问题想问一下的,grid.getColByName('zjz').readonly = true;是将所有zjz这列都设置成只读,如果我只想设置当前行的zjz这列为只读应该怎么做?谢谢
64 楼 zack 2007-03-05  
现在有报错的
行:117
字符:3
代码:0
错误:'object' 未定义
网址:http://127.0.0.1/test/gridedit.jsp
63 楼 hexiaodong 2007-03-05  
试试看新的
62 楼 zack 2007-03-05  
谢谢楼主,还有一个问题:对于string类型的单元格,如果值是""字符串的话,在点击后离开该单元格时,会触发onCellValueChanged事件,而且传递到后台的值是一个"?",如果单元格为非空则不存在这个问题
61 楼 hexiaodong 2007-03-05  
新增行设置值,你可以这样做:
var rowData = new Object();
rowData[property1] = v1;
rowData[property1] = v2;
...
grid.addNewRow(rowData);
60 楼 zack 2007-03-05  
麻烦楼主能够解答一下最后两个问题吗?我们这边急等着解决这两个问题的,谢谢了
59 楼 zack 2007-02-28  
如果我新增了一行后,需要在新增的行中设置一些值,我怎么才可以取到新建行的对象
58 楼 zack 2007-02-28  
还有一个问题,对于string类型的单元格,如果值是""字符串的话,在点击后离开该单元格时,会触发onCellValueChanged事件,而且传递到后台的值是一个"?",如果单元格为非空则不存在这个问题
57 楼 zack 2007-02-28  
我刚才仔细看了一下你的sigmawidgets.js中的定义,重新赋值应该写成
grid.onCellValueChanged = function(evt){
var row = evt.rowData;
var rowId = evt.rowId;
var v = row.p$('number')*row.p$('percent');
grid.setCellValue(rowId,'cusExp',v);
}
就可以了,还有一个问题想问一下的,grid.getColByName('zjz').readonly = true;是将所有zjz这列都设置成只读,如果我只想设置当前行的zjz这列为只读应该怎么做?谢谢
56 楼 zack 2007-02-28  
晕,现在又可以了,不好意思了
55 楼 zack 2007-02-28  
谢谢,还有发现一个问题,如果我在最后新增加了一行的话,现在不会显示出来,需要上下移动一下滚动条才会显示出最后一条的记录。
54 楼 hexiaodong 2007-02-28  
哦,这个问题非三言两语能说清楚的。但我的SigmaMVC框架可以解决这个问题,它首先用一个JsParser把json字符串解析成map,然后用xwork把map解析成java对象。
53 楼 zack 2007-02-28  
第三个问题是如何将json格式的字符串转化为相对应的java对象
52 楼 hexiaodong 2007-02-27  
现在不用在列上设置监听器了,只要实现grid.onCellValueChanged,就能响应所有单元格的变化。

grid.isReadonly = function(col,rowData){}用来判断一个单元格是否只读

第三个问题,不大清楚什么意思,你不是已经有行对象了么?你要封装到什么对象中去?
51 楼 zack 2007-02-27  
那我再来仔细看一下这个是什么问题的?还有三个问题要麻烦一下:
1、如何判断当前单元格是否编辑?
2、对于String类型的单元格,我定义了如下 {name:"cpmc",caption:"产品名称",mode:"string",width:180,listener:"onCellValueChanged"},{name:"cpgg",caption:"产品规格",mode:"string",width:180}。当我先点击该第二个单元格然后再点击其它单元格时,也触发了onCellValueChanged事件。
3、我已经将当前行的值转化成了{"cpmc":"PCS","cpmc":"KKK","l_r_id":8,"_index":7},我如何将它们封装到相应对象中去。

谢谢
50 楼 hexiaodong 2007-02-27  
grid.onCellValueChanged = function(evt){
var row = evt.rowData;
var rowId = evt.rowId;
var v = row.p$('number')*row.p$('percent');
row.s$("cusExp",v);
grid.setCellValue(rowId,'cusExp',row);
}

我这样写没有问题阿

相关推荐

    xyui是一套使用原生WebComponents规范开发的跨框架UI组件库

    - **框架无关性**:因为基于Web Components,xyui组件能直接在HTML中使用,不依赖特定的MVC框架,易于迁移和升级。 - **性能优化**:由于Shadow DOM的存在,组件的渲染性能得以优化,避免了全局样式的影响。 通过`...

    H587国外_HTML手机电脑网站_网页源码_移动端前端js效果_H5模板_自适应css样式ui组件.zip

    而UI组件则是预设计的可复用代码块,如按钮、导航栏、表单等,它们遵循一致的设计风格,可以方便地集成到项目中,提升开发效率并保持界面一致性。 总的来说,这个资源包是一份全面的前端开发工具集,涵盖了HTML5的...

    H597国外_HTML手机电脑网站_网页源码_移动端前端js效果_H5模板_自适应css样式ui组件.zip

    至于"ui组件",它们是网站或应用界面的构成元素,如导航栏、按钮、滑块、下拉菜单等。这些预设的组件通常基于HTML5、CSS3和JavaScript实现,具有良好的可复用性和定制性。通过学习和使用这些组件,开发者可以快速...

    ligerui

    它的核心特性在于提供了一整套易于使用的UI组件,使得开发者能够快速地搭建功能丰富的交互式界面。LigerUI不仅关注美观,还强调易用性和性能,使得开发者在满足用户需求的同时,也能保证项目的高效开发。 1. **组件...

    element-ui V 2.12.0 lib

    总结来说,Element UI v2.12.0 是一个强大的 UI 库,提供了多种可复用的组件,支持响应式设计,并且持续进行性能优化和功能升级,对于 Vue.js 开发者来说,是一个值得信赖的开发工具。通过了解其组件特性和版本更新...

    kendoui资源包

    kendoui资源包是一个专为JavaScript开发设计的工具集合,它为构建现代Web应用程序提供了丰富的UI组件和功能。Kendo UI是Telerik公司推出的一款强大的前端框架,它旨在提高开发效率,提供美观且响应式的用户界面。 ...

    漂亮的UI插件(多平台使用)

    jQuery EasyUI是一个基于jQuery的轻量级框架,它提供了一系列易于使用的UI组件,如对话框、表格、菜单、面板、滑块等,能够帮助开发者快速构建具有专业外观的Web应用界面。 "还有漂亮的CSS"意味着包内包含了一套...

    H+ui 4.1 新版本 web前端ui框架 最新版

    2. **丰富的组件库**:框架内包含了大量的UI组件,如导航栏、按钮、表单、网格系统、弹出框、提示信息、轮播图、时间线、统计图表等,满足各种常见应用场景。这些组件均遵循统一的设计风格,易于集成和扩展。 3. **...

    fry:基于react的UI组件库

    【标题】:“fry:基于React的UI组件库” 【描述】:“fry是一个基于React技术构建的UI组件库,旨在提供一系列预先设计和优化的React组件,以便开发者能够快速、高效地构建用户界面。” 【知识点详解】: 1. ...

    kendo ui学习资料

    通过自定义这些样式,开发者可以调整Kendo UI组件的外观以符合项目需求。 总体而言,这份“Kendo UI学习资料”是全面了解和掌握Kendo UI的一个宝贵资源,涵盖了从基础使用到高级定制的多个层面,对于初学者和进阶...

    jquery-ui-1.8.16.custom.zip

    1. **jQuery UI的核心特性**:jQuery UI提供了数十种可定制的UI组件,包括但不限于对话框(Dialog)、下拉菜单(Dropdown)、滑块(Slider)、进度条(Progressbar)、日期选择器(Datepicker)等。这些组件具有良好...

    Tailwind UI 最新版2024-02-14.zip

    1. **新组件**: 更新可能引入了新的UI组件,如表单元素、导航菜单、卡片、模态框、提示等,以满足更多设计需求。这些组件遵循最新的Web设计趋势,确保你的网站保持现代感。 2. **性能优化**: 新版本可能对代码进行...

    基于ElementUI二次封装的支持自适应列宽的tablecolumn列组件

    - **API设计**:新组件的API应该易于理解和使用,同时保持与原Element-UI组件的兼容性,方便开发者切换和升级。 - **性能优化**:由于涉及实时计算和调整列宽,可能会影响渲染性能。需要避免不必要的计算,如使用...

    jquery-ui-1.10.4

    jQuery UI 是一个基于 jQuery JavaScript 库的强大用户界面库,提供了丰富的交互效果、可定制的主题以及多种可重用的组件。在本篇文章中,我们将深入探讨jQuery UI 1.10.4版本的核心特性、功能及其在实际开发中的...

    jQuery LigerUI V1.3.2

    jQuery LigerUI V1.3.2是一款基于jQuery的前端用户界面库,旨在提供一系列丰富的UI组件,以帮助开发者快速构建具有专业外观和交互效果的Web应用。LigerUI是轻量级且易于使用的,它将jQuery的强大功能与美观的界面...

    jquery-ui-1.8.6

    1. **组件丰富**:jQuery UI 包含了大量的UI组件,如日期选择器(Datepicker)、对话框(Dialog)、拖放(Draggable)、可排序(Sortable)、可叠放(Stackable)、可折叠(Collapsible)、滑块(Slider)、进度条...

    jquery-ui-1.12.1

    jQuery UI是基于JavaScript库jQuery的一个扩展,提供了一系列可复用、主题化的UI组件,帮助开发者快速创建出富有交互性的网页应用。在本篇文章中,我们将深入探讨jQuery UI 1.12.1这一版本的特点和功能,以及如何...

    jqueryui jqueryui

    - **选择组件**:根据项目需求,选择要使用的jQuery UI组件,如Dialog(对话框)、Accordion(手风琴)、DatePicker(日期选择器)等。 - **初始化组件**:通过JavaScript代码初始化组件,设置相应的选项和事件监听...

    element-ui资源

    在使用 "element-ui02" 压缩包时,可能涉及到升级现有项目的 Element UI 版本,或者获取额外的组件或资源。务必按照官方文档的指示进行操作,以确保正确无误地整合到项目中。同时,及时关注官方发布的更新日志,以便...

    jqueryui-API(最完整).rar

    1. **jQuery UI组件**: - **Dialog(对话框)**: 提供模态或非模态对话框,用于提示、确认或者展示详细信息。 - **Accordion(手风琴)**: 用于展示折叠内容,用户可以逐个展开或收起。 - **Tabs(标签页)**: ...

Global site tag (gtag.js) - Google Analytics