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

OA系统

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.Web;
  4. using System.Web.UI;
  5. using System.Drawing;
  6. using System.ComponentModel;
  7. using System.Drawing.Design;
  8. [assembly:TagPrefix("OThinker.H3.WorkSheet","SheetControls")]
  9. namespace OThinker.H3.WorkSheet
  10. {
  11. /// <summary>
  12. /// SheetListBox 的摘要说明。
  13. /// </summary>
  14. [ToolboxBitmap(typeof(SheetListBox),"OThinker.H3.WorkSheet.SheetListBox.bmp")]
  15. [ToolboxData("<{0}:SheetListBox runat=server></{0}:SheetListBox>")]
  16. public class SheetListBox : System.Web.UI.WebControls.ListBox, ISheetControl
  17. {
  18. public SheetListBox()
  19. {
  20. this.SelectionMode = System.Web.UI.WebControls.ListSelectionMode.Single;
  21. }
  22. #region 类SheetListBox属性
  23. private string _DataField = null;
  24. [Bindable(true),Category("WorkSheet"),DefaultValue("")]
  25. [Editor(typeof(DataSelector),typeof(UITypeEditor))]
  26. public string DataField
  27. {
  28. get
  29. {
  30. return this._DataField;
  31. }
  32. set
  33. {
  34. this._DataField = value;
  35. }
  36. }
  37. #endregion
  38. #region ISheetControl 成员
  39.         public virtual void LoadDataField(OThinker.H3.WorkSheet.SheetPage SheetPage)
  40. {
  41. if(this.DataField == null || this.DataField == "")
  42. {
  43. }
  44. else if(SheetPage.Enviroment.InstanceData[this.DataField] == null)
  45. {
  46. }
  47. else if(SheetPage.Enviroment.InstanceData[this.DataField].Visible == false)
  48. {
  49. }
  50. else
  51. {
  52. if(SheetPage.Enviroment.InstanceData[this.DataField].Value != null)
  53. {
  54. this.DataSource = (string[])SheetPage.Enviroment.InstanceData[this.DataField].Value;
  55. this.DataBind();
  56. }
  57. // this.Enabled = SheetPage.Enviroment.InstanceData[this.DataField].Editable;
  58. }
  59. }
  60.         public virtual bool ValidateDataField(
  61.             OThinker.H3.WorkSheet.SheetPage SheetPage,
  62.             System.Collections.Generic.List<string> Errors)
  63.         {
  64.             return true;
  65.         }
  66.         public virtual void SaveDataField(OThinker.H3.WorkSheet.SheetPage SheetPage)
  67. {
  68. if(
  69. this.DataField != null &&
  70. this.DataField != "" &&
  71. SheetPage.Enviroment.InstanceData[this.DataField] != null && 
  72. SheetPage.Enviroment.InstanceData[this.DataField].Visible && 
  73. SheetPage.Enviroment.InstanceData[this.DataField].Editable)
  74. {
  75. string[] ListContent = new string[this.Items.Count];
  76. int i = 0;
  77. foreach(System.Web.UI.WebControls.ListItem li in this.Items)
  78. {
  79. ListContent[i] = li.Value;
  80. i++;
  81. }
  82. SheetPage.Enviroment.InstanceData[DataField].Value = ListContent;
  83. }
  84. }
  85. #endregion
  86. }
  87. }