`
hexiaodong
  • 浏览: 65345 次
  • 性别: 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. 标题锁定,假如需要纵向滚动,表格标题不会被隐藏。
废话少说,大家下载代码看看吧。希望能看到热烈的交流。
分享到:
评论
89 楼 zack 2007-03-28  
理解楼主的苦处,人一生中总是会有不顺心的时间的,希望楼主能够尽快走出来!
88 楼 hexiaodong 2007-03-27  
唉,最近忙着买房子,工作上又不爽,没心情做大的升级了。
87 楼 zack 2007-03-27  
是的,我现在就是这样做的,当时查了半天问题的,现在和大家共享一下解决方法
86 楼 hexiaodong 2007-03-27  
这个好解决,你把div定义调一下不就行了嘛
85 楼 zack 2007-03-27  
楼主,还有一个BUG,比如我在锁定列Grid前两列时,如果我定义的层的高度不能完全显示一行数据(例如每行高20,一页显示10行,我定义div的高度为195)时,当数据量大于一页时会有错行出现(锁定列和没有锁定部份没有对齐)
84 楼 pragmatic 2007-03-21  
楼主,最近好忙吗?能不能通过设置参数来控制表格的排序功能,需要排序的列才让他排序,还有上面提到的那个问题,楼主能不能花点时间实现下,谢谢!
83 楼 pragmatic 2007-03-16  
对的,当数据量不是很大时,就不用采取这种方式,建议楼主增加这方面的扩展
82 楼 zack 2007-03-16  
楼主建议是不是设置一个变量来控制是一次绘制还是滚动绘制
81 楼 hexiaodong 2007-03-16  
让大家久等了。
80 楼 hexiaodong 2007-03-16  
上下滚动的时候,整个视图是重新绘制的,所以会比较慢一点,如果有合计行会更慢。
我为了让表格能快速加载大量数据,所以不得不每次加载的时候只绘制当前可见行。这样,每次重新加载数据的时候绘制界面只需要数百个ms,但这也带来的滚动不够平滑的问题。纵向滚动时,每次重绘界面大约需要200ms(这个时间跟各位的机器配置也有关系)。但滚动过程中,不是每次触发onScroll的时候就会重绘的,控件会等待最后一个onScroll事件被触发的时候才重绘界面。因此滚动条一直滚动的时候,是看不到数据更新的,滚动结束的时候才更新界面。
这个结果也是多方平衡的结果了。如果你需要一个载入量不是很大(<1000)的多功能表格控件,我可以为你订制一个一次性绘制界面的控件。
79 楼 flysky_net 2007-03-16  
不知道楼主有没有好的方法来解决这个问题,期待中...
78 楼 zack 2007-03-16  
在滚动时需要重新进行js计算和重画当前可见行的,所以会比较慢一些的,这个也和电脑的配置有关系
77 楼 pragmatic 2007-03-16  
楼主,您好,感谢你为我们提供功能这么强大的组件,我想问一下拖上下滚动条的时候,数据怎么跟不上呀!不像左右滚动条那么快,这个使得我好郁闷
76 楼 zack 2007-03-15  
增加不会滚动的问题,只要将addNewRow中
if(oThis.from <0)
  oThis.from = 0;
修改成:
if(oThis.from <0){
  oThis.from = 0;
  oThis.paintCurrentRows(oThis.from);
}
就可以了
75 楼 zack 2007-03-13  
在例子中,如果删除一些数据后再进行增加的话也是一样的问题的
74 楼 zack 2007-03-12  
还有一个问题的,如果我初始的时候行数不够的话,我点击增加时不会刷新显示新加入的行,如果我行数比较多的时候由于要滚动就没有这样的问题存在的
73 楼 zack 2007-03-12  
楼主你好,我的删除程序按如下所写
  if(window.confirm('是否真的要删除所选中的行?')){
    var lsParm = "";
    var data = grid.getValue();
    for(var i=0;i<data.length;i++){
      if(data[i]._selected===true){
        if(lsParm.length>0){
          lsParm += ",";
        }
        lsParm += data[i].xh;
      }
    }

    if(lsParm.length>0){
      //更新数据
      var r = new AjaxRequest("post","/test/setByXh.jsp",true);
      r.setParameter("delval",lsParm);
      r.setParameter("action","delete");
      r.onresult = function(){
        var result = r.getValue();
        if(result.exception!=null){
          alert(result.exception);
        }else{
          window.returnValue = "relist";
          window.close();
        }
      }
      r.send(null);

      grid.deleteSelectedRows();
    }
  }
但是这样执行后老是会报117,3object对象不存在的错,请问这是什么问题
72 楼 zack 2007-03-09  
麻烦楼主帮忙抽时间把那个在当前浏览窗口的最后一行再按回车时,会提示“没有下一行”的问题解决吗?谢谢了,我们的项目目前正等着投入使用的。
71 楼 zack 2007-03-07  
好的,谢谢,还有最后一个问题:enter跳转到下行的功能,还有一个问题,如果是在当前浏览窗口的最后一行再按回车时,会提示“没有下一行了”,实际上后面还有许多行的,不会自动滚动当前编辑窗口
70 楼 hexiaodong 2007-03-07  
你可以这样定义一个列:
{name:"",caption:"",readonly:"functionName()",....}

function functionName(){
    ....
}

相关推荐

    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代码初始化组件,设置相应的选项和事件监听...

    LigerUI前端设计帮助文件

    1. **LigerUI组件**:LigerUI提供了多种组件,如按钮、表单、表格、对话框、下拉菜单、分页、树形结构、图表等。这些组件都有各自的API和配置选项,帮助开发者实现各种交互效果。 2. **使用方法**:文档会详细介绍...

    element-ui资源

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

Global site tag (gtag.js) - Google Analytics