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

OA系统

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.Web.UI;
  4. using System.Web.UI.WebControls;
  5. using System.ComponentModel;
  6. using System.Drawing;
  7. using System.Drawing.Design;
  8. [assembly: TagPrefix("OThinker.H3.WorkSheet", "SheetControls")]
  9. namespace OThinker.H3.WorkSheet
  10. {
  11.     /// <summary>
  12.     /// SheetInstanceNameEditor 的摘要说明。
  13.     /// </summary>
  14.     /// 
  15.     [ToolboxBitmap(typeof(SheetInstanceNameEditor), "OThinker.H3.WorkSheet.SheetInstanceNameEditor.bmp")]
  16.     [DefaultProperty("Text"), ToolboxData("<{0}:SheetInstanceNameEditor runat=server></{0}:SheetInstanceNameEditor>")]
  17.     public class SheetInstanceNameEditor : System.Web.UI.WebControls.TextBox, ISheetControl
  18.     {
  19.         public SheetInstanceNameEditor()
  20.         {
  21.         }
  22.         public const string DataField = OThinker.H3.Data.Keywords.InstanceParser.InstanceName;
  23.         public const string Html = "<input name="" + DataField + "" type="text" value="[" + DataField + "]" />";
  24.         private RenderType _RenderType = RenderType.LabelWhenDisable;
  25.         /// <summary>
  26.         /// 显示方式
  27.         /// </summary>
  28.         [Bindable(true), Category("WorkSheet"), Description("控制控件的显示方式")]
  29.         public RenderType RenderType
  30.         {
  31.             get
  32.             {
  33.                 return this._RenderType;
  34.             }
  35.             set
  36.             {
  37.                 this._RenderType = value;
  38.             }
  39.         }
  40.         #region ISheetControl 成员
  41.         public virtual void LoadDataField(OThinker.H3.WorkSheet.SheetPage SheetPage)
  42.         {
  43.             // 获得名称
  44.             string name = SheetPage.Enviroment.InstanceManager.GetInstanceName(SheetPage.Enviroment.InstanceId);
  45.             this.Text = name;
  46.             if (SheetPage.Enviroment.Workflow.StartActivity == SheetPage.Enviroment.ActivityName)
  47.             {
  48.                 // 如果当期活动为发起活动的话,则允许写
  49.                 this.Enabled = true;
  50.             }
  51.             else
  52.             {
  53.                 this.Enabled = false;
  54.             }
  55.         }
  56.         public virtual bool ValidateDataField(OThinker.H3.WorkSheet.SheetPage SheetPage, System.Collections.Generic.List<string> Errors)
  57.         {
  58.             return true;
  59.         }
  60.         public virtual void SaveDataField(OThinker.H3.WorkSheet.SheetPage SheetPage)
  61.         {
  62.             if (SheetPage.Enviroment.Workflow.StartActivity == SheetPage.Enviroment.ActivityName)
  63.             {
  64.                 // 写名称
  65.                 SheetPage.Enviroment.InstanceManager.SetInstanceName(SheetPage.Enviroment.InstanceId, this.Text);
  66.                 SheetPage.Enviroment.WorkItemManager.UpdateInstanceName(SheetPage.Enviroment.WorkItemID, this.Text);
  67.             }
  68.         }
  69.         #endregion
  70.         protected override void Render(HtmlTextWriter writer)
  71.         {
  72.             if (this.Enabled || this.RenderType != RenderType.LabelWhenDisable)
  73.             {
  74.                 base.Render(writer);
  75.             }
  76.             else
  77.             {
  78.                 writer.Write(this.Text);
  79.             }
  80.         }
  81.     }
  82. }