效果预览:
实现功能: 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']]) |