AbstractWorkItemGrid.cs
上传用户:li2971742
上传日期:2021-11-18
资源大小:39096k
文件大小:3k
源码类别:

OA系统

开发平台:

C#

  1. using System;
  2. using System.Web.UI;
  3. using System.Web.UI.WebControls;
  4. using System.ComponentModel;
  5. namespace OThinker.H3.Portal
  6. {
  7. /// <summary>
  8. /// Summary description for AbstractWorkItemGrid.
  9. /// </summary>
  10. [DefaultProperty("Text"), 
  11. ToolboxData("<{0}:AbstractWorkItemGrid runat=server></{0}:AbstractWorkItemGrid>")]
  12. public class AbstractWorkItemGrid : WorkItemGrid
  13. {
  14. // 任务概述
  15. protected TemplateColumn AbstractColumn = new TemplateColumn();
  16. protected int AbstractColumnIndex
  17. {
  18. get
  19. {
  20. return this.Columns.IndexOf(this.AbstractColumn);
  21. }
  22. }
  23. public AbstractWorkItemGrid() : base()
  24. {
  25. foreach(DataGridColumn column in this.Columns)
  26. {
  27. column.Visible = false;
  28. }
  29. this.ShowHeader = false;
  30. this.AbstractColumn.HeaderText = "工作项";
  31. this.Columns.Add(this.AbstractColumn);
  32. }
  33.         protected override void Grid_ItemDataBound(object sender, DataGridItemEventArgs e)
  34.         {
  35.             base.Grid_ItemDataBound(sender, e);
  36.             if (e.Item.ItemType != ListItemType.Header && e.Item.ItemType != ListItemType.Footer)
  37.             {
  38.                 // 状态
  39.                 OThinker.H3.WorkItem.WorkItemState state = OThinker.H3.WorkItem.WorkItemState.Working;
  40.                 if (!this.DesignMode)
  41.                 {
  42.                     state = this.GetState(e);
  43.                 }
  44.                 // 优先级别
  45.                 OThinker.H3.Instance.PriorityType priority = OThinker.H3.Instance.PriorityType.Normal;
  46.                 if (!this.DesignMode)
  47.                 {
  48.                     priority = this.GetPriority(e);
  49.                 }
  50.                 // 接收时间
  51.                 System.DateTime receiveTime = System.DateTime.Now;
  52.                 if (!this.DesignMode)
  53.                 {
  54.                     receiveTime = this.GetReceiveTime(e);
  55.                 }
  56.                 // 完成时间
  57.                 System.DateTime finishTime = System.DateTime.Now;
  58.                 if (!this.DesignMode)
  59.                 {
  60.                     finishTime = this.GetFinishTime(e);
  61.                 }
  62.                 // 滞留时间
  63.                 System.TimeSpan stayTime = new System.TimeSpan(1, 0, 0, 0, 0);
  64.                 if (!this.DesignMode)
  65.                 {
  66.                     stayTime = this.GetStayTime(e);
  67.                 }
  68.                 // 显示的名称
  69.                 string displayName = this.GetDisplayName(e);
  70.                 // Url
  71.                 string url = this.GetFullUrl(e);
  72.                 // Instance info
  73.                 string caseInfo = this.GetInstanceInfo(e);
  74.                 // Urgency
  75.                 string urgency = "Urgency";
  76.                 if (!this.DesignMode)
  77.                 {
  78.                     urgency = e.Item.Cells[this.UrgencyColumnIndex].Text;
  79.                 }
  80.                 WorkItemGridItem item = new WorkItemGridItem(
  81.                     state,
  82.                     priority,
  83.                     this.GetParticipantFullName(e), 
  84.                     receiveTime,
  85.                     finishTime,
  86.                     displayName,
  87.                     url,
  88.                     caseInfo,
  89.                     urgency);
  90.                 e.Item.Cells[this.AbstractColumnIndex].Controls.Add(item);
  91.             }
  92.         }
  93. }
  94. }