繁体   English   中英

如何在数据网格视图列中查看多个数据C#

[英]How to view multiple data in data grid view column c#

我遇到了一个问题,如果值属于同一类别,则数据网格视图列将不会显示超过1个值。

示例:2个人在同一个地方工作。 第一个人的上班时间为:10:00-1700。第二个人的上班时间为:1500:2100。

我实现了一些代码,以在Schedule数据网格视图中显示2个人的换班时间。 问题从这里开始。 这2个工作人员在15:00-17:00之间有重叠的时移。 15:00-17:00之间在数据网格视图中显示的值仅是第一个人的名字。 我需要在15:00-17:00的时间轮班中同时显示两个员工的姓名。

这是将数据显示到数据网格视图中的代码。

foreach (allocation a in query)
        {
            for (int i = 0; i < scheduleDGV.Rows.Count - 1; i++)
            {
                for (int j = 0; j < scheduleDGV.Columns.Count; j++)
                {
                    if (cbLocation.SelectedItem.Equals(a.LocationName) && cbScheduleDate.SelectedItem.Equals(a.AllocationDate))
                    {
                        if (a.LocationName.Equals(scheduleDGV["Location", i].Value.ToString()) &&
                            a.StationName.Equals(scheduleDGV["Station", i].Value.ToString()))
                        {
                            if (scheduleDGV.Columns[j].HeaderText.Equals(a.AllocationTime.ToString()))
                            {
                                scheduleDGV[j, i].Value = a.EmployeeName;
                            }
                        }
                    }
                }
            }
        }

任何人都对如何实现它有任何想法,以便它可以显示两个名称而不是仅显示一个? 谢谢! 帮助将不胜感激。 :)

您的问题可能是由于生产线引起的

scheduleDGV[j, i].Value = a.EmployeeName; 

您只是在其中将相关的员工姓名放在单元格中,而不检查那里是否已经有姓名。

在不重构其余代码的情况下,可以将以下行替换为:

var existingName = scheduleDGV[j, i].Value as string;
if (!String.IsNullOrempty(existingName))
{
    scheduleDGV[j, i].Value = 
        existingName +
        Environment.NewLine +
        a.EmployeeName;
}
else
{
    scheduleDGV[j, i].Value = a.EmployeeName; 
}

看看是否已经做了你所期望的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM