需求如下:1、在记录列表里,批量删除只允许在查看具体人员的记录时才允许批量删除;2、查询所有记录时批量按钮不可用;3、多条记录时,操作日期最大的记录不允许删除;4、若记录只有一条不允许删除功能实现:对操作日期的扩展控件进行遍历查找出最大值,对于勾选复选框对应的操作日期组成的数组,如果包含最大值,则删除按钮不可用,反之删除按钮可用。。。现在有个问题,最大值刷新后会变化,如图:第一次访问时是正常的:刷新后就变成:以下是我写的代码://建立json数组var op = _g().getWidgetsByName("opdate");var json = new Array();if (typeof(op) != "undefined") {for (i = 0; i < op.length; i++) {var oprow = FR.cellStr2ColumnRow(op.options.location).row;//获取行号var opcol = FR.cellStr2ColumnRow(_g().getWidgetByName("opdate").options.location).col;var value = _g().getCellValue(0, opcol, oprow);json.push(value);} }else {var oprow = FR.cellStr2ColumnRow(_g().getWidgetByName("opdate").options.location).row;//获取行号var opcol = FR.cellStr2ColumnRow(_g().getWidgetByName("opdate").options.location).col;var value = _g().getCellValue(0, opcol, oprow);json.push(value);}//获取日期型数组json的最大值:Array.prototype.max = function() {var max = this;this.forEach(function(ele, index, json) {if (ele > max) {max = ele;}else{max=ele;}})return max;}datemax = json.max();//alert(datemax);//根据勾选生成操作日期数组var boxes = _g().getWidgetsByName("box");var oparr = new Array();var delarr = new Array();if (typeof(boxes) != "undefined") {for (i = 0; i < boxes.length; i++) {if (boxes.getValue() == true) {var row = FR.cellStr2ColumnRow(boxes.options.location).row;//获取行号var col = FR.cellStr2ColumnRow(_g().getWidgetByName("opdate").options.location).col;//获取列号var opvalue = _g().getCellValue(0, col, row);var delvalue=boxes.getValue();//alert(opvalue);//如果控件大于1个,则遍历修改选中行当前列的值oparr.push(opvalue);delarr.push(delvalue);}}} else {if (boxes.getValue() == true) {var row = FR.cellStr2ColumnRow(boxes.options.location).row;//获取行号var col = FR.cellStr2ColumnRow(_g().getWidgetByName("opdate").options.location).col;//获取列号var opvalue = _g().getCellValue(0, col, row);//如果控件只有1个,则直接判断是否选中,选中的话修改当前列的值var delvalue=boxes.getValue();oparr.push(opvalue);delarr.push(delvalue);}}//根据条件让按钮是否可用if (oparr.indexOf(datemax) > -1 || delarr==false || name.length==0) {contentPane.getWidgetByName("del").setEnable(false);} else {contentPane.getWidgetByName("del").setEnable(true);}-----------------------经过测试发现,这种现象会出现在个别记录里,并不是所有的,郁闷了,我是用姓名作为参数查询的,当发现前端日期不是最大时,不断点击查询后,又恢复正常了;对于异常的记录,通过ALERT查问题,发现数组个数老是变化,如果日期组成的数组个数不变的话,是没有问题的。我通过参数过滤来的数据,对应的数组不固定吗??不知道有谁遇到过这个问题,测试了好久也没结果。。。但90%的记录测试是没问题的,有问题的记录还是少数,就更郁闷了------------------------通过查询获取的时间组成的数组,其个数为何有时会变化呢。。var op = _g().getWidgetsByName("opdate");var num=op.length;alert(num);此时数组的个数num有时会变化,甚至会出现undefined有谁能解释一下呢,在线等。。。。。。------------------------------------------------------------