簡體   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