`
hexiaodong
  • 浏览: 65218 次
  • 性别: 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. 标题锁定,假如需要纵向滚动,表格标题不会被隐藏。
废话少说,大家下载代码看看吧。希望能看到热烈的交流。
分享到:
评论
49 楼 zack 2007-02-27  
在sigmawidgets.htm中是用formula:"p$('number')*p$('percent')"来进行计算的,我这边是在程序中定义的grid.onCellValueChanged = function(evt){...}在进行计算和赋值刷新的,麻烦你再看一下是什么问题,谢谢了
48 楼 hexiaodong 2007-02-27  
zack 写道
但是我用grid.setCellValue(rowId,colName,row); 来更新时,他的数值总是变成0.0


在我的测试用的sigmawidgets.htm中,可以正常更新啊
47 楼 zack 2007-02-26  
    var row = evt.rowData; //行对象
    var rowId = evt.rowId; //控件自己生成的行号
    var colName = evt.column.name; //当前编辑单元格和名称
    //计算总净重
    if(colName=='xs'||colName=='jz'){
      if((ldXs!=null)&&(ldXs!=0.0)&&(ldJz!=null)&&(ldJz!=0.0)){
        row.s$('zjz',ldXs * ldJz);
        grid.getColByName('zjz').readonly = true;
      }else{
        grid.getColByName('zjz').readonly = false;
      }
      grid.setCellValue(rowId,'zjz',row); //更新指定列的视图
    }
46 楼 zack 2007-02-26  
但是我用grid.setCellValue(rowId,colName,row); 来更新时,他的数值总是变成0.0
45 楼 hexiaodong 2007-02-26  
zack 写道
还有一个建议,如有某个列是只读的,最好用不同的底色来与可编辑的列区分开来。


你自己写一个CellRender就行
44 楼 hexiaodong 2007-02-26  
zack 写道
还有一个问题的,我用row.s$('zjz',ldXs * ldJz);设置了zjz这行的新值,但是好像显示不会刷新


grid.setCellValue(rowId,colName,row); //更新指定行列的视图
43 楼 zack 2007-02-26  
还有一个建议,如有某个列是只读的,最好用不同的底色来与可编辑的列区分开来。
42 楼 zack 2007-02-26  
还有一个问题的,我用row.s$('zjz',ldXs * ldJz);设置了zjz这行的新值,但是好像显示不会刷新
41 楼 zack 2007-02-25  
非常感谢LZ的解答,新版本的变化比较大的,不好意思了
40 楼 hexiaodong 2007-02-25  
zack 写道
如果我要动态设置某一列为只读应该怎么写,以前我是用event.cell.row.cells['ztj'].setReadOnly(true)来设置的

var col = grid.getColByName(colName);
col.readonly = true;
39 楼 hexiaodong 2007-02-25  
关闭日志,可以调用SigmaUtil.closeLogger()


监听单元格:
grid.onCellValueChanged = function(evt){
var row = evt.rowData; //行对象
var cellValue = row.p$(evt.column.name);//取当前单元格的值
var rowId = evt.rowId; //控件自己生成的行号
var colName = "newCol";
row.s$(colName,newValue); //设置当前行另一列的值,colName是另一列列名
grid.setCellValue(rowId,colName,row); //更新指定列的视图
}
38 楼 zack 2007-02-25  
如果我要动态设置某一列为只读应该怎么写,以前我是用event.cell.row.cells['ztj'].setReadOnly(true)来设置的
37 楼 zack 2007-02-25  
还有我应该怎么写可以不显示日志?谢谢了
36 楼 zack 2007-02-25  
还有个问题的,以前对于数据修改后可以触发一个事件,listener:"onValueChanged",现在应该怎么办,是定义一个render吗?还有我以前可以使用var lsHgbh = event.cell.row.getValueOf('hgbh');来取得当前行中hgbh这个字段的值,用event.cell.row.setValueOf('dybz',true);来设置dybz这个字段的值,现在应该怎么做?
35 楼 zack 2007-02-25  
哈,拜年主要是要谢谢楼主的辛苦劳动,那个bug嘛:),谢谢了
34 楼 godson_2003 2007-02-25  
哈哈,新年快乐,恭喜发财
33 楼 hexiaodong 2007-02-25  
都来拜年了呀,看来上面那个bug不改不行了
32 楼 zack 2007-02-25  
新春快乐啊,上班了,先拜个晚年
31 楼 zack 2007-02-14  
楼主,试了一下enter跳转到下行的功能,还有一个问题,如果是在当前浏览窗口的最后一行再按回车时,会提示“没有下一行了”,实际上后面还有许多行的,不会自动滚动当前编辑窗口
30 楼 zack 2007-02-14  
感谢楼主的工作哦,非常感谢

相关推荐

    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