网站首页 手机版
 注册 登录
您现在的位置: 畅无忧设计 >> 网页特效 >> 表格图层 >> 正文
最新文章
· JS代码实现单元格移动效果
· JavaScript让表格的边框闪烁起来
· 网页Div层拖拽--Clone特效代码
· 可拖动的DIV层
· 简单拖曵的原理与实例
· 上传图片之前先预览图片
· 漂亮的Js拖动层,窗口拖拽(改变大小
· 隔行换色,鼠标划过改变颜色
· Js点击文字弹出层,点击层以外区域关
· CSS自动竖向排列的布局方法
热门文章
 js实现div区域块伸缩效果(toggle)
 js弹出层组件artDialog2.1正式版
 一个简单实用的jquery拖动插件jque
 JS仿EXCEL表格功能
 点击页面任何地方,将div隐藏,除了
 动态插入、添加删除表格行的JS代码
 带遮罩效果并可以拖动的DIV弹出层
 Js点击文字弹出层,点击层以外区域
 利用js向表格动态追加行
 JQuery EasyValidator表单验证插件
相关文章
没有相关文章
轻便易用的JavaScript动态表格
来源:蓝色理想 更新时间:2010/8/29 9:54:55 阅读次数: 我要投稿
☉预览 ↓下载 #复制 +收藏
特效代码:
//事件委托的类型   
    eventDelegationType: {   
        click: 0,   
        contextMenu: 1   
    }   
    //使用事件委托来处理行的点击事件   
    registEventDelegation: function(eventType, e){   
        var target = e.target || e.srcElement;   
        target = this.getDataRowDom(target);   
        if (target.rowIndex >= this.headNum) {   
            switch (eventType) {   
                case this.eventDelegationType.click:   
                    this.rowSelect(target, e);   
                    break;   
                case this.eventDelegationType.contextMenu:   
                    this.customContextMenu(target, e);   
                    break;   
                default:   
                    return false;   
            }   
        }   
    }   
//获取数据行的DOM对象   
    getDataRowDom: function(ele){   
        while (ele.nodeName != 'TR' && ele.parentNode) {   
            ele = ele.parentNode;   
        }   
        if (ele.nodeName != 'TR') {   
            return false;   
        }   
        else {   
            return ele;   
        }   
    }
☉预览 ↓下载 #复制 +收藏
特效说明:

效果预览:

 

实现功能:
1.支持IE6+,FireFox3.5+。
2.支持列宽度拖动。
3.支持行选择与功能按钮状态相关联,当选中一行时可以编辑,选中多行时可以进行删除等操作,不选则功能按钮禁用。
4.支持上下文菜单。
5.支持单击选择,Ctrl+单击,Shift+单击。
6.采用事件委托处理单击选择和上下文菜单事件,方便Ajax扩展。
7.总代码行数小于500行(不包括注释等)。

使用方法:

为了更加灵活,这里将各个功能按钮和上下文菜单的选项的方法都单独拿出来处理。使用的时候可能会麻烦一点但是也更加的灵活。在实例化dtable对象之前应该先定义功能按钮的方法,否则会提示相应的方法未定义的错误。例如删除按钮:
funcBtnsEvent.tool_delete = function(){
        if(confirm("本操作将无法恢复,您确定吗?")){
            var ids = '';
            for(var i in d.rowCollection){
                ids += d.rowCollection[i].id + ',';
            }
            alert('delete?ids='+ids);
        }
    }

这里解释一下,方法中用到一个变量d,这个变量是在页面中实例化的dtable对象,它提供了一个rowCollection的行数组属性。同样这里你用到哪个功能按钮就需要定义哪个按钮的方法,当然你也可以集中处理这些方法,这就属于使用时的扩展了。

定义好了各个按钮对应的方法后就可以实例化我们的dtable对象了。

它需要三个参数,控件的id,功能按钮名称数组,上下文菜单条目名称数组。上下文菜单条目名称数组的那个参数可以为空,为空的时候禁用上下文菜单功能。
var d =new dtable('my_grid', [funcBtnType.query, funcBtnType['new'], funcBtnType.save], [contextMenuType['new'],contextMenuType.edit,contextMenuType['delete']])

  • 上一篇文章:
  • 下一篇文章:
  • 关于我们 - 联系我们 - 广告服务 - 在线投稿 - 友情链接 - 网站地图 - 版权声明
    CopyRight 2008-2010, CWYDESIGN.COM - 畅无忧设计, Inc. All Rights Reserved
    滇ICP备09005765号