组连接跳过前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;
} }
您可以选择所有项目到单个列表,并使用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))