显示DataTable和数据绑定中记录的序列号是通过LINQ完成的

时间:2018-01-29 16:52:31

标签: c# linq

public List<string[]> NotificationManagementData(IEnumerable<NotificationManagements> ComplaintEntry, int currentUserId)
{
    return ComplaintEntry.Select((entry, index) => new string[]
    {      
        (index + 1).ToString(),                 
        GetLinks(currentUserId, entry),
        entry.state_Id,
        entry.refType,                
        entry.request,
        entry.action,
        Common.Encrypt(currentUserId.ToString(), entry.id.ToString())
    }).ToList();
}

为了显示每条记录的序列号,我只是为每个条目的索引值加1。如果所有记录都在一个页面中,上面的代码工作正常。但如果有超过1页的序列号,则从第二页的1开始。请帮助我在接下来的页面继续获取序列号。提前致谢

1 个答案:

答案 0 :(得分:1)

假设分页在ComplaintEntry级别完成(没有其他级别可以执行,因为ToList()调用),您需要将初始行号传递给方法,如下所示:

public List<string[]> NotificationManagementData(IEnumerable<NotificationManagements> ComplaintEntry, int currentUserId, int firstRow) {
    return ComplaintEntry.Select((entry, index) => new string[] { 
        (index + firstRow).ToString(),                 
        GetLinks(currentUserId, entry),
        entry.state_Id,
        entry.refType,                
        entry.request,
        entry.action,
        Common.Encrypt(currentUserId.ToString(), entry.id.ToString())
    }).ToList();
}

NotificationManagementData的调用者知道当前页面,因此他们可以进行数学计算以确定传递给firstRow参数的内容。