jQuery MiniUI

 找回密码
 立即注册
查看: 2617|回复: 1
打印 上一主题 下一主题

虚拟滚动后,验证的BUG [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2016-7-8 14:49:33 |只看该作者 |倒序浏览
  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4.     <title>表格大数据量:10000条</title>

  5.     <script src="../scripts/boot.js" type="text/javascript"></script>
  6.    
  7. </head>
  8. <body >

  9.         
  10. <h4>表格大数据量:10000条</h4>
  11. <span><a class="mini-button" iconCls="icon-save"
  12. plain="true" id="btnSave" onclick="save()">保存</a> </span>
  13. <div id="grid1" class="mini-datagrid" style="width:100%;height:400px;"        
  14.     idField="UID" pageSize="50"
  15.     allowCellEdit="true" allowCellSelect="true" multiSelect="true"   
  16.     showPager="false" virtualScroll="true"
  17. >
  18.     <div property="columns">
  19.         <div type="indexcolumn"></div>
  20.         <div type="checkcolumn"></div>
  21.         <div name="taskname" field="Name" width="200">任务名称
  22.             
  23.         </div>
  24.         <div field="Duration" width="100">工期</div>
  25.         <div field="Start" width="100" dateFormat="yyyy-MM-dd">开始日期</div>
  26.         <div field="Finish" width="100" dateFormat="yyyy-MM-dd">完成日期</div>
  27.         <div field="Duration" width="100">工期</div>
  28.         <div field="PercentComplete" width="100" vtype="required">进度
  29.                 <input property="editor" class="mini-textbox" minValue="0" maxValue="200" value="25" style="width:100%;"/>
  30.         </div>
  31.         <div field="Start" width="100" dateFormat="yyyy-MM-dd">开始日期</div>
  32.         <div field="Finish" width="100" dateFormat="yyyy-MM-dd">完成日期</div>

  33.     </div>
  34. </div>

  35. </body>
  36. </html>
  37. <script type="text/javascript">
  38. //    var sss = new Date();
  39. //    window.onload = function () {
  40. //        setTimeout(function () {
  41. //            alert(new Date() - sss);
  42. //        }, 1);
  43. //    };
  44.    
  45.     function fillData() {
  46.         var data = [];
  47.         for (var i = 0, l = 10000; i < l; i++) {
  48.             var o = {
  49.                 "UID": i,
  50.                 "ParentTaskUID": -1,
  51.                 "Name": "项目范围规划" + i,
  52.                 "Duration": 5,
  53.                 "Start": "2007-01-01",
  54.                 "Finish": "2007-01-05",
  55.                 "PercentComplete": 0,
  56.                 "Summary": 1,
  57.                 "Critical": 0,
  58.                 "Milestone": 0,
  59.                 "PredecessorLink": []
  60.             };
  61.             data.push(o);
  62.         }
  63.         
  64.         grid.setData(data);
  65.     }

  66.     mini.parse();
  67.         var grid = mini.get("grid1");
  68.     fillData();
  69.     function save(){
  70.             grid.validate();
  71.                    if(grid.isValid()==false){
  72.                            var error = grid.getCellErrors()[0];//显示错误的位置
  73.             grid.scrollIntoView(error.record);
  74.             grid.beginEditCell(error.record, error.column);                                
  75.             return;
  76.                    }
  77.     }


  78. </script>
复制代码


全部数据假设有1W多行,在500行左右有个文本框验证,这时候滚动条在第1条。点保存,这时候会走验证代码,全找到验证的单元格。但鼠标点不进去(BUG)。。。。要点一下其它的单元格之后,才能点进去这个要验证的格。

Rank: 8Rank: 8

沙发
发表于 2016-7-8 15:07:08 |只看该作者
setTimeout(function(){
    grid.beginEditCell(error.record, error.column);     
},100)
不过,并不建议大数据的表格用验证,低端浏览器会卡死

Archiver|普加软件

GMT+8, 2024-9-29 06:21 , Processed in 1.031630 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部