组连接跳过前10项打印到第二页或方法跳转到某些索引

本文关键字:二页 方法 索引 连接 10项 打印 | 更新日期: 2023-09-27 18:15:14

我想打印一个测量列表(afmetingen)排序的测量属性,你可以测量它与(toestel)。因此,我使用组连接来找到所有正确的度量,将其放置在度量属性组中。现在第一页是OK的,但是当我到达页面的末尾时(没有足够的空间),我检测到它并且不打印其余部分。

所以我放置了ev。将morepages设为true,从第二页重新开始。但我不需要打印前10个测量值。我如何跳过前10个测量?

跳过选项不工作…

现在有没有办法从测量列表的某个索引开始?

private void pd_PrintPageV2(object sender, PrintPageEventArgs ev)
    {
                    var afmetinger =
                       from selectoestel in toestel
                       orderby selectoestel.Volgnr
                       where selectoestel.IDnumber >= meettoestel 
                       join metinger in tempmeetrapport.afmetingen on selectoestel.IDnumber equals metinger.meettoestel into metinggroup
                       select new
                        {
                            //select toestel naam
                            toestel = selectoestel.naam,
                            volgnr = selectoestel.IDnumber,
                            //select de volledig afmeting
                            afmetingers = from prod2 in metinggroup
                                          orderby prod2.nummer
                                          select prod2
                        };
         int i = 0;
         //code to print the measurement attribute on the page (deleted (to long))
         //start printing all measurements row by row
         foreach (var productGroup in afmetinger)
         {
             foreach (var prodItem in productGroup.afmetingers)
             {
                if(i < 10){ print something on page }
                i++
             }
            }
         // If more lines exist, print another page.
         if (i>10)
         {
             ev.HasMorePages = true;
         }    }

组连接跳过前10项打印到第二页或方法跳转到某些索引

您可以选择所有项目到单个列表,并使用LINQ的Skip方法:

var allItems = afmetinger.SelectMany(x => x.afmetingers);
foreach (var prodItem in allItems.Skip(numberOfItemsToSkip))

同样,如果您总是只想显示10个项目,您可以将其与Take:

结合使用。
foreach (var prodItem in allItems.Skip(numberOfItemsToSkip).Take(10))