站长资源网络编程 一个可绑定数据源的jQuery数据表格插件 整理:jimmy2026/8/6浏览2次 站长资源 网络编程 网盘链接 云盘下载 简介固定表头 列宽可调整 单击列头可排序 双击单元格可编辑 可绑定数据源 看下效果吧:HTML - 模板代码: 复制代码 代码如下: 姓名 固定表头 列宽可调整 单击列头可排序 双击单元格可编辑 可绑定数据源 看下效果吧:HTML - 模板代码: 复制代码 代码如下: <table id="test"> <tr class="header"> <td style="width: 100px;" sort='true'> 姓名 </td> <td style="width: 100px;" sort='true'> 性别 </td> <td style="width: 100px;" sort='true'> 年龄 </td> <td style="width:200px;" sort='true'> 住址 </td> </tr> <tr class="itemtemplate"> <td editable='true'> {姓名} </td> <td editable='true'> {性别} </td> <td editable='true'> {年龄} </td> <td editable='true'> {住址} </td> </tr> </table> jsascript代码: 复制代码 代码如下: //测试数据 var dataJsonStr='{tablename:"",rows:[{"姓名":"曹操","性别":"男","年龄":"51","住址":"许昌"},{"姓名":"诸葛亮","性别":"男","年龄":"40","住址":"南阳"},{"姓名":"周瑜","性别":"男","年龄":"40","住址":"江东"},{"姓名":"大乔","性别":"女","年龄":"30","住址":"江东"},{"姓名":"小乔","性别":"女","年龄":"28","住址":"江东"},{"姓名":"曹操","性别":"男","年龄":"51","住址":"许昌"},{"姓名":"诸葛亮","性别":"男","年龄":"40","住址":"南阳"},{"姓名":"周瑜","性别":"男","年龄":"40","住址":"江东"},{"姓名":"大乔","性别":"女","年龄":"30","住址":"江东"},{"姓名":"小乔","性别":"女","年龄":"28","住址":"江东"}]}'; //清空数据 $('#test').DataGridClear(); //设定行样式 $('#test').DataGridSetItemClass("tr1","tr2","trhover"); //绑定数据,并设置宽度高度 $('#test').DataGrid("100%",200,dataJsonStr); 结构示意图: 如何根据HTML模板创建DataGrid整个结构? 1.首先创建 表头 主体 等各区域: 复制代码 代码如下: TableBody.addClass('TableBody'); TableBody.wrap("<div id='"+MyTableId+"' class='houfeng-table'></div>"); var MyTable=$('#'+MyTableId); TableBody.data('MyTable',MyTable); TableBody.before("<table class='TableHead' ></table>"); var TableHead=MyTable.find(".TableHead"); TableBody.data('TableHead',TableHead); TableBody.wrap('<div class="TableBodyArea"></div>'); TableHead.wrap("<div class='TableHeadArea' onselectstart='return false;'></div>"); var TableBodyArea=MyTable.find('.TableBodyArea'); var TableHeadArea=MyTable.find('.TableHeadArea'); TableBody.data('TableBodyArea',TableBodyArea); TableBody.data('TableHeadArea',TableHeadArea); 上面代代中红色高亮 TableBody 为表主体, TableHead 为表头 2.创建表头 复制代码 代码如下: TableBody.find('.header').clone().prependTo(TableHead); TableBody 其实便是HTML模板Table , 将 .header 的行移到到表头表格中作为表头. 3.创建表主体 创建表主体,其实便是根据数据源及模板 循环创建每一行 , 这里用了 上篇文章提到的 Repeater 来创建, 详细 请看用javascript实现Repeater. 4.处理当列过多时横向滚动条的问题 复制代码 代码如下: TableBodyArea.scroll(function (){ var ml=0-parseInt(TableBodyArea.attr('scrollLeft')); TableHead.css('margin-left',ml); }); TableBodyArea 为TableBody外包裹的一个Div 5.如何实现单元格编辑 双击td时在td中动态插入一个文件本框为将td的innerHTML给文本框,在文本焦点失去时,将文本框值赋给td的innerHTML,将移除文本框 代码如下: 复制代码 代码如下: TableBody.find('td').live('dblclick',function(){ var td=$(this); if(td.attr('editable')=='true') { var text=td.text(); var html="<input type='text' class='TdEditTextBox' value='"+$.trim(text)+"' />"; td.html(html); td.addClass("tdediting"); // $(this).find('.TdEditTextBox').focus().focus().focus().focus(); $(this).find('.TdEditTextBox').blur(function(){ var val=$(this).val(); td.html(val); td.removeClass("tdediting"); }); } }); 6. 如何排序: 由时间问题请容我下回分解!! 源码下载: /201007/yuanma/DataGrid.rar作者:houfeng 出处:http://houfeng.cnblogs.com 上一篇:javascript 循环读取JSON数据的代码 下一篇:js跨域问题之跨域iframe自适应大小实现代码 最新资源 群星《奔赴!万人现场 第2期》[FLAC/分轨] 群星《奇妙浪一夏 (上海迪士尼度假区音乐 群星《奇妙浪一夏 (上海迪士尼度假区音乐 【古典音乐】詹姆斯·高威《季节》1993[WA 贝拉芳蒂《卡里普索之王》SACD[WAV+CUE] 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE 群星《欢迎来到我身边 电影原声专辑》[32 群星《欢迎来到我身边 电影原声专辑》[FL 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低 群星《2024好听新歌42》AI调整音效【WAV分 一句话新闻高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。 标签云1080P高清(5)高清电影(5)百度云盘(5)网盘下载(4)破解软件(4)绿色软件(4)磁力链接(3)强度天梯(3)福利资源(2)王者荣耀(2)黑钻活动(2)WPS会员(2)刷图排行(1)网盘限速(1)鬼灭之刃(1)免费韩国漫画(1)宫本重做(1)免费动漫(1) 友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网 站点地图 SiteMap