如何循环网格行数据?

时间:2018-10-31 16:06:51

标签: angular typescript

我遇到了一些问题,我想跟踪网格的第二行是否有数据,然后该值将变为in(文本框只读)。表示超过1个项目。我正在使用循环

var esc = (char)27;
var right = esc + "|rA";
//string right = Encoding.ASCII.GetString(new byte[] { 27, (byte)'|', (byte)'r', (byte)'A' });
foreach (ListViewItem item in listView_Sepet.Items)
{
   posPrinter.PrintNormal(PrinterStation.Slip, right + item.SubItems[1].Text + Environment.NewLine);
}

*我是这两种技术的初学者,对使用循环有些困惑,有时使用for和if可能会模糊。如果可以的话,请详细解释,谢谢。

1 个答案:

答案 0 :(得分:0)

几件事。首先,要明确一点,您的数组如下所示:

var example = [
   {
      "hello": [
        ["item 1", "item 2", "", "item 3"],
        ["item 1", "", "item 3", "item 4"] 
      ]      
   }
]

如果您的示例对象看起来不是这样,请根据需要进行澄清。

稍微整理一下示例和变量:

var tables = example;
for (var tableIndex = 0; tableIndex < tables.length; tableIndex++)
{
   var tableRows = tables[tableIndex];

} 

只需遍历示例变量中的每个网格即可。

接下来,让我们循环浏览各行:

var tables = example;
for (var tableIndex = 0; tableIndex < tables.length; tableIndex++)
{
   var tableRows = tables[tableIndex];
   for (var rowIndex = 0; rowIndex < tableRows.length; rowIndex++)
   {
      var rowCells = tableRows[rowIndex]
      var allCellsHavVal = rowCells.every(cellHasVal);//If every cell has a value
   }
} 

function cellHasVal(cell)
{
   return Boolean(cell);//return true if cell is 'truthy' (has a value);
}

我们在这里做了几件事:

  1. 如果单元格具有值(名为cellHasVal),则创建的函数将返回true
  2. 创建一个遍历表中每一行的循环,并在每个单元格都有值的情况下为变量分配一个值。

最后一步: 循环遍历行中的每个单元格,并根据规则设置格式:

var tables = example;
for (var tableIndex = 0; tableIndex < tables.length; tableIndex++)
{
   var tableRows = tables[tableIndex];
   for (var rowIndex = 0; rowIndex < tableRows.length; rowIndex++)
   {
      var rowCells = tableRows[rowIndex]
      var allCellsHavVal = rowCells.every(cellHasVal);//If every cell has a value
      var shouldBold = rowIndex > 1; //If more than one row of data, bold the cell
      for (var cellIndex = 0; cellIndex < rowCells.length; cellIndex++)
      {
        if (shouldBold)
        {
         //bold cell (implementation can vary based on your toolset, style, etc.)
        }
        if (allCellsHaveValue)
        {
         //Turn background of cell yellow, 
        }
      }

   }
} 

function cellHasVal(cell)
{
   return Boolean(cell);//return true if cell is 'truthy' (has a value);
}