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

时间:2012-08-21 09:04:32

标签: c#

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

示例:2个人在同一个地方工作。第一个换挡时间是:10:00-1700。第二个换挡时间是:1500:2100。

我实现代码以在Schedule数据网格视图中显示2个人的班次时间。问题从这里开始。这2名工人在15:00至17:00之间重叠时间。 15:00 - 17:00之间数据网格视图中显示的值仅为First guy的名称。我需要在时间段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;
                            }
                        }
                    }
                }
            }
        }

那里的任何人都有任何关于如何实现它的想法,以便它可以显示两个名称而不是一个名称?谢谢!将非常感谢帮助。 :)

1 个答案:

答案 0 :(得分:0)

您的问题可能来自

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; 
}

并查看是否符合您的预期。