Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过单击列';使用javascript的头文件_Javascript_Sorting_Testcomplete - Fatal编程技术网

通过单击列';使用javascript的头文件

通过单击列';使用javascript的头文件,javascript,sorting,testcomplete,Javascript,Sorting,Testcomplete,我需要帮助来创建一个javascript函数,该函数允许我通过单击列标题对列(表)进行排序。该列包含8位数字和多行。我需要先对其进行升序排序,然后进行降序,并进行验证,以确保排序工作正常,并记录每种排序的结果 我正在使用TestComplete和javascript脚本 验证示例: //验证排序功能 for (var k = 0; i < records.length; k++) { if(column[k] != column_sorted[

我需要帮助来创建一个javascript函数,该函数允许我通过单击列标题对列(表)进行排序。该列包含8位数字和多行。我需要先对其进行升序排序,然后进行降序,并进行验证,以确保排序工作正常,并记录每种排序的结果

我正在使用TestComplete和javascript脚本

验证示例:

//验证排序功能

       for (var k = 0; i < records.length; k++)
        {
        if(column[k] != column_sorted[k])
        Log.Warning("Sort functionality does not work for the column")
   
        break;
       }
       Log.Checkpoint("Sort functionality works for the column")
         Log.Message(column_sorted[k].contentText);
for(var k=0;i

谢谢你的帮助

这是一项艰巨的任务。为此,您可能需要使用一个库,例如TableSorter:

一个简单的表分类器并不是那么难。诀窍在于获得正确的排序函数,其余的则相当简单。下面显示了如何使用一列数字对表进行排序,以及添加到表中的功能有多少

一些测试HTML:

<table id="t0">
  <tr><td>44444444
  <tr><td>66666666
  <tr><td>33333333
  <tr><td>77777777
  <tr><td>11111111
  <tr><td>55555555
  <tr><td>22222222
</table>

<button onclick="sortRows(document.getElementById('t0'));">Sort</button>
<button onclick="sortRows(document.getElementById('t0'), true);">Sort reverse</button>

44444444
66666666
33333333
77777777
11111111
55555555
22222222
分类
反向排序
和脚本

// Sort table rows by the first cell (index 0)
// Setting reverse to true sorts in reverse
function sortRows(table, reverse) {

  // Get the rows, this gets all rows in a table but can be
  // restricted to those within a table section
  var row, rows = table.rows;
  var cells = [];
  reverse = !!reverse;

  // Get cells to sort and load into array
  // Gets the first cell in each row, but could use the cell index
  // of a header cell that was clicked on
  for (var i=0, iLen=rows.length; i<iLen; i++) {
    cells.push(rows[i].cells[0]);
  }

  // Sort the cells as numbers
  // or any other sort algorithm (e.g. date, alphabetic, etc.)
  cells.sort(function(a, b) {
    return getText(a) - getText(b);
  });

  // Reverse if required
  if (reverse) cells.reverse();

  // Order rows based on new order of cells
  // This works within a table section, making it easy to exclude
  // header and footer rows
  for (var j=0, jLen=cells.length; j<jLen; j++) {
    row = cells[j].parentNode;
    row.parentNode.appendChild(row);
  }
}

// A simple helper as textContent is not supported by all browsers in use
// Can be much more sophisticated and trim whitespace
function getText(el) {
  return el.textContent || el.innerText || '';
}
//按第一个单元格(索引0)对表行进行排序
//将reverse设置为true将反向排序
函数sortRows(表,反向){
//获取行,这将获取表中的所有行,但可以
//仅限于表节中的内容
变量行,行=table.rows;
var单元格=[];
反向=!!反向;
//让单元格排序并加载到数组中
//获取每行中的第一个单元格,但可以使用单元格索引
//单击的标题单元格的名称

对于(var i=0,iLen=rows.length;i如果已经将列的值放入数组,则可以简单地使用JScript方法对该数组进行升序排序。如果需要执行降序排序,则需要使用简单的自定义排序函数

function test()
{
  var records = new Array();
  records.push(92749283);
  records.push(47932729);
  records.push(12309334);
  records.push(84932889);

  Log.Message("Ascending");
  records.sort();
  for (var i = 0; i < records.length; i++)
    Log.Message(records[i]);

  Log.Message("Descending");
  records.sort(sortDesc);
  for (var i = 0; i < records.length; i++)
    Log.Message(records[i]);
}

function sortDesc(a, b)
{
  if (a > b) return -1;
  if (a < b) return 1;
  return 0;
}
功能测试()
{
var记录=新数组();
记录.推送(92749283);
记录:推送(47932729);
记录.推送(12309334);
纪录.推送(84932889);;
日志消息(“升序”);
records.sort();
对于(var i=0;ib)返回-1;
如果(a
这是家庭作业还是什么?有很多框架和现成的服务器控件可以为您解决这个问题。或者如果您使用的是.Net GridView服务器控件。@Seano666为什么要提到.Net?问题或标记中没有指定它。您是否尝试在TestComplete中记录您的操作?对于其他人:这个问题不是不是关于浏览器中的JavaScript,而是关于使用TestComplete的自动化web测试(GUI自动化)。