【问题标题】:Need to have a grid Grouped into logical groups based on date需要根据日期将网格分组为逻辑组
【发布时间】:2011-09-27 15:54:09
【问题描述】:

我正在处理需要根据日期列对 DevExpress 网格进行分组的情况。问题是,我需要调用我的组:过去、当前和未来。这是 LINQ:

GridJobSummary.DataSource = from luke in DbContext.JobBookings
            where luke.LocumID == LocumID
            orderby luke.Job.JobDate descending
            select new {
                luke.JobID,
                luke.Job.JobDate,
                ClientID = luke.Job.Branch.ClientID,
                ClientName = String.Format("{0} ({1})", luke.Job.Branch.Client.Name, luke.Job.Branch.Client.Number),
                BranchID = luke.Job.BranchID,
                BranchName = String.Format("{0} ({1})", luke.Job.Branch.Number, luke.Job.Branch.Number),
                JobBookingStatusName = luke.JobBookingStatus.Name
            };

GridJobSummaryView.Columns["JobID"].Visible = false;
GridJobSummaryView.Columns["ClientID"].Visible = false;
GridJobSummaryView.Columns["BranchID"].Visible = false;

GridJobSummaryView.Columns["JobDate"].DisplayFormat.FormatType = FormatType.DateTime;
GridJobSummaryView.Columns["JobDate"].DisplayFormat.FormatString = "ddd, dd-MMM-yyyy";
GridJobSummaryView.Columns["JobDate"].SortOrder = ColumnSortOrder.Ascending;

现在,

如果[工作日期过去组。

如果 [job date >= Today and 当前。

如果 [工作日期 > (今天 + 1 个月)],它是 未来

如何将我的网格分组到这个虚拟组中?问候。

【问题讨论】:

    标签: winforms linq-to-sql c#-4.0 devexpress


    【解决方案1】:

    将属性“GroupName”添加到选定对象:

    select new {
                    luke.JobID,
                    luke.Job.JobDate,
                    ClientID = luke.Job.Branch.ClientID,
                    ClientName = String.Format("{0} ({1})", luke.Job.Branch.Client.Name, luke.Job.Branch.Client.Number),
                    BranchID = luke.Job.BranchID,
                    BranchName = String.Format("{0} ({1})", luke.Job.Branch.Number, luke.Job.Branch.Number),
                    JobBookingStatusName = luke.JobBookingStatus.Name,
                    GroupName = GetGroupNameByDate(luke.Job.JobDate)
                };
    
    // .....
    string GetGroupNameByDate(DateTime date) {
        var today = DateTime.Today;
        if ( date < today ) { return "Past"; }
        else if ( date >= today && date <= today.AddMonths( 1 ) ) { return "Current"; }
        else { return "Future"; }
    }
    

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 2020-11-02
      • 2016-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      相关资源
      最近更新 更多