![[开发技巧]DataTable(数据表格)使用技巧汇总.doc_第1页](http://file.renrendoc.com/FileRoot1/2019-3/17/c5a47df4-5687-4078-97cd-5f0e9e614a93/c5a47df4-5687-4078-97cd-5f0e9e614a931.gif)
![[开发技巧]DataTable(数据表格)使用技巧汇总.doc_第2页](http://file.renrendoc.com/FileRoot1/2019-3/17/c5a47df4-5687-4078-97cd-5f0e9e614a93/c5a47df4-5687-4078-97cd-5f0e9e614a932.gif)
![[开发技巧]DataTable(数据表格)使用技巧汇总.doc_第3页](http://file.renrendoc.com/FileRoot1/2019-3/17/c5a47df4-5687-4078-97cd-5f0e9e614a93/c5a47df4-5687-4078-97cd-5f0e9e614a933.gif)
![[开发技巧]DataTable(数据表格)使用技巧汇总.doc_第4页](http://file.renrendoc.com/FileRoot1/2019-3/17/c5a47df4-5687-4078-97cd-5f0e9e614a93/c5a47df4-5687-4078-97cd-5f0e9e614a934.gif)
![[开发技巧]DataTable(数据表格)使用技巧汇总.doc_第5页](http://file.renrendoc.com/FileRoot1/2019-3/17/c5a47df4-5687-4078-97cd-5f0e9e614a93/c5a47df4-5687-4078-97cd-5f0e9e614a935.gif)
已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
开发技巧 DataTable(数据表格)使用技巧汇总hotbarsmu 2008-09-20 DataTable(数据表格)使用技巧汇总1.如何设定表格中行的高度(包括表格头,合计栏) headerHeight:设定表格头的高度;footerHeight:设定表格合计栏的高度;rowHeidht:设定数据行的高度;dorado-5.0 060904.1658以后的版本支持2.如何添加动态列(包含自定义的按钮或者自定义的超链接) Table中直接添加一个column,不需要设定field属性,如name为operation范例1:实现效果:表格列中包含一个按钮,功能:单击查看详细实现方法:在该列的onRefresh事件中写入代码var id = record.getValue(id); /通过表格当前单元框所属的record对象获取主键信息。var html = 详细 ;cell.innerHTML = html;在视图模型的中添加function showDetail(id)open(打开详细信息显示页面的url?id=+id);范例2:表格列中包含一个超级链接,功能:单击查看详细实现方法:在该列的onRefresh事件中写入代码var id = record.getValue(id); /通过表格当前单元框所属的record对象获取主键信息。var html = 详细 ;cell.innerHTML = html;3.如何在表格的双击事件中打开详细信息页面,如detail.jsp,并传入表格中当前行的某几列信 息实现表格的onRecordDBClick事件,写入代码:open(detail.jsp?param1=+dataset.getValue(field1)+¶m2=+dataset.getValue(field2);以上代码需要注意的是,我们提交给detail.jsp页面的参数是通过dataset获取而不是直接从表格中的列获取,这是由于DataTable提供了绑定功能的机制,当我们选中了表格的某一行双击选择时,dataset已经自动的定位到当前行所在的dataset的record对象上,我们通过 dataset.getValue()就是获得表格当前选择行所属的record对象的getValue()方法。4.如何在页面打开时,自动锁定表格中的指定的两列信息 设定表格的fixedColumn为2,并在Studio设计器中调整自己需要的两个列到DataTable的最前面,如下的配置:就表示当前表格锁定的列为married和employee_name.5.如何隐藏表格中指定列虽然表格中的列提供了visible属性,如果我们将它设定为false该列将自动隐藏。我们建议的最好方式是直接删除视图模型中DataTable中的该列6.如何在客户端动态的隐藏或则添加表格中指定的列方法一:DataTable提供了removeColumn方法用于动态删除列,实现代码如下:table1.removeColumn(这里填入你想要隐藏的列的name);table1.refresh();/刷新表格,使新的设定生效方法二:DataTable提供getColumn方法获得表格中指定列对象。var column = table1.getColumn(employee_name);column.setVisible(false); /设定该列对象的visible属性为false,用以隐藏该列table1.refresh();/刷新表格,使新的设定生效方法三:利用DataTable的addColumn属性动态的添加列var column = table1.addColumn(employee_name);column.setField(employee_name);/设定该列绑定到记录集合的employee_name字段table1.setColumnIndex(column,0);/设定该列在表格中的位置table1.refresh();/刷新表格,使新的设定生效7.如何在表格中显示图片 DataTable中的每一个表格框在初始化的以及数据更新的时候都会触发表格中column对象的onRefresh事件,由该事件负责向表格中的 cell中写入显示的信息,利用这个机制。我们可以在表格中需要显示图片的column中的onRefresh事件中加入如下的代码:cell.innerHTML = ;如:cell.innerHTML = ;当然了,很多情况下我们的图片是储存到文件服务器或则数据库中,而不是上面例子中图片存储到war包下。那么我们就可以修改src的url路径为一个servlet,并且传入表格中当前记录的其它字段信息,以便后台根据关键字获得正确的图片文件。如:cell.innerHTML = ;随后我们可以在服务器端新增一个servlet对象。web.xml中配置为:photodownloadsample.control.Photodownloadphotodownload/photodownloadServlet的定义为public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException String employeeId = request.getParameter(employeeId);InputStream in = getDownloadFileInputStream(employeeId); /根据employeeId获取要输出文件的文件流对象if (in != null) OutputStream out = response.getOutputStream();try byte buffer = new byte2048;int len = in.read(buffer);while (len != -1) out.write(buffer, 0, len);len = in.read(buffer);out.flush();catch (Exception ex) /* todo* to avoid .SocketException: Connection reset by peer: socket write error*/finally in.close();out.close();其中getDownloadFileInputStream是需要开发人员自定义的函数,主要功能是通过employeeId获取一个文件流对象,开发人员可根据具体业务需求决定从文件服务器获得文件还是数据库获得文件。以下摘抄一段oracle获取数据库文件流的代码:public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException String employeeId = request.getParameter(employeeId);Connection con = getConnection();/获取connectioncon.setAutoCommit(false);Statement st = con.createStatement();ResultSet rs = st.executeQuery(select fileName, contents from BLOBIMG where id= + employeeId + );if (rs.next() String fileName = rs.getString(fileName);oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob(1);InputStream ins = blob.getBinaryStream();response.setContentType(application/unknown);response.addHeader(Content-Disposition,attachment; filename= + fileName);OutputStream outStream = response.getOutputStream();byte bytes = new byte1024;int len = 0;while ( (len = ins.read(bytes) != -1) outStream.write(bytes, 0, len);ins.close();outStream.close();outStream = null;mit();con.close();8.如何使用表格的汇总行 a.视图模型中设定表格的showFooter属性为true;b.设定表格绑定的数据集中需要作汇总的字段的supportsSum为true;根据这个设置,dataset会自动的计算该字段的和,并显示在表格的统计列中。通过该种方式设置的统计值会自动根据表格中统计字段的值变化而重新统计和。并刷新;后记:合计列数值的格式化定义:实现column的onFooterRefresh事件,代码如:cell.innerHTML=+value+;/value为数据集的统计值,datatable调用该事件时,会先自动计算出这个合计值。return false;合计数值之前的一列显示一个汇总项说明:设置合计列之前的一列(Column)的footValue属性(在xml中直接指定最为简洁)9.如何自定义表格的CSS风格 默认情况下DataTable的CSS风格是通过doradohome资源目录下(dorado项目中对应的是home)smartwebv2skinsdefaultskin.css主要属性有:/*数据表格*/.DataTable background-color: #F5F7F9;/*数据头*/.DataTable .HeaderGrid color: #405368;border-width: 1;border-color: #C5D9E8;border-style: solid;border-collapse: collapse;table-layout: fixed;/*数据头激活单元格*/.DataTable .HeaderGrid .HotCell background-position-y: 100%;background-image: url($SkinRoot/datatable_header_hot.gif);/*统计栏*/.DataTable .FooterGrid background-color: #E1EAF1;border-width: 1;border-color: #C5D9E8;border-style: solid;border-collapse: collapse;table-layout: fixed;/*锁定列的数据表格体*/.DataTable .FixedDataGrid background-color: #EDF2F6;border-width: 1;border-color: #C5D9E8;border-style: solid;border-collapse: collapse;table-layout: fixed;/*锁定列的数据表格体的行指示器*/.DataTable .FixedDataGrid .Indicator background-color: #E6EDF2;/*锁定列数据表格体的数据行*/.DataTable .FixedDataGrid .Row /*数据表格体*/.DataTable .DataGrid background-color: #F5F7F9;border-width: 1;border-color: #C5D9E8;border-style: solid;border-collapse: collapse;/*数据表格体的数据行*/.DataTable .DataGrid .Row /*数据表格体的当前激活行*/.DataTable .DataGrid .CurrentRow background-color: #B7F39B;通过修改这些css配置,我们就可以修改表格的默认风格。10.如何设定表格列的只读属性 a.(推荐)设定表格列绑定的field的readOnlyb.设定column本身的readOnly属性11.如何动态设定表格行/列的只读特性 表格中希望根据表格中某一列的数据动态决定该行是否可编辑。在dataset的afterScroll方法中添加代码:var flag = dataset.getValue(flag);/获取用于判断的关键字段的值if (flag=true)datasetEmployee.setReadOnly(true);/设定dataset的状态为不可编辑elsedatasetEmployee.setReadOnly(false);/设定dataset的状态为可编辑使用技巧说明:该处会让所有初次使用的人感到迷惑不解a.为什么不是设定表格中的数据而是设定dataset的readOnly?datatable说:很抱歉,我的信息都是dataset管理的。同样状态也由dataset管理。b.为什么是设定整个dataset的只读属性而不是设定某一个record的只读属性?dataset说:很是抱歉,虽然我有record对象,但是我的record对象不支持只读属性的设定。这样我们所有的重担都落到dataset上了,兴好dataset找到它的cursor兄弟。cursor说:反正页面上所有元素显示的值都是由我决定的。当dataset的readOnly为true时,这些元素也不可编辑,所以你直接在我(cussor)进行定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州织金翔盛工业发展有限公司招聘考前自测高频考点模拟试题及答案详解(名校卷)
- 浙江国企招聘2025杭州市临安区城市发展投资集团有限公司下属众诚咨询公司公开招聘工作人员4人笔试历年参考题库附带答案详解
- 2025黑龙江双鸭山集贤县公安局交通警察大队招聘勤务辅助人员30人笔试历年参考题库附带答案详解
- 2025陕西神延煤炭有限责任公司招聘(17人)笔试历年参考题库附带答案详解
- 2025陕西帛顶茂生物科技有限公司招聘10人笔试历年参考题库附带答案详解
- 2025贵州黔东南州黔凯城镇建设投资(集团)有限责任公司招聘8人笔试历年参考题库附带答案详解
- 2025贵州省铜仁凤凰机场有限责任公司会计员招聘1人笔试历年参考题库附带答案详解
- 2025福建漳州市芗江人力资源服务有限公司招聘劳务派遣人员补录笔试历年参考题库附带答案详解
- 2025航天六院内蒙古航天红峡化工有限公司招聘30人考前自测高频考点模拟试题及一套完整答案详解
- 2025浙江舟山市嵊泗县兴盛公路养护工程有限公司笔试历年参考题库附带答案详解
- 2025年合肥市轨道交通集团有限公司第二批次社会招聘12人考试历年参考题附答案详解
- 甘肃电网考试题目及答案
- 2025年专升本医学影像检查技术试题(含参考答案)解析
- 《互联网应用新特征》课件+2025-2026学年人教版(2024)初中信息技术七年级全一册
- 过节前安全培训课件
- 高二生物上学期第一次月考(安徽专用)(全解全析)
- 模具安全操作注意培训课件
- 3.2《参与民主生活 》- 课件 2025-2026学年度道德与法治九年级上册 统编版
- 农产品电子商务运营 教学大纲、教案
- 2025年秋新北师大版数学2年级上册全册同步教学设计
- 抖音短视频签约合同范本
评论
0/150
提交评论