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

OA系统

开发平台:

C#

  1. using System;
  2. using System.Web;
  3. using System.Web.UI;
  4. using System.ComponentModel;
  5. using System.Drawing;
  6. using System.Drawing.Design;
  7. [assembly:TagPrefix("OThinker.H3.WorkSheet","SheetControls")]
  8. namespace OThinker.H3.WorkSheet
  9. {
  10. /// <summary>
  11. /// SheetRadioButton 的摘要说明。
  12. /// </summary>
  13. [ToolboxBitmap(typeof(SheetRadioButtonList),"OThinker.H3.WorkSheet.SheetRadioButtonList.bmp")]
  14. [ToolboxData("<{0}:SheetRadioButtonList runat=server></{0}:SheetRadioButtonList>")]
  15. public class SheetRadioButtonList : System.Web.UI.WebControls.RadioButtonList, ISheetControl
  16. {
  17. public SheetRadioButtonList()
  18. {
  19. this.EnableViewState = false;
  20. }
  21. #region 类SMRadioButtonList属性
  22. private string _DataField = null;
  23. [Bindable(true),Category("WorkSheet"),DefaultValue("")] 
  24. [Editor(typeof(DataSelector),typeof(UITypeEditor))]
  25. public string DataField
  26. {
  27. get
  28. {
  29. return this._DataField;
  30. }
  31. set
  32. {
  33. this._DataField = value;
  34. }
  35. }
  36. #endregion
  37. #region ISheetControl 成员
  38.         public virtual void LoadDataField(OThinker.H3.WorkSheet.SheetPage SheetPage)
  39. {
  40. if(this.DataField == null && this.DataField == "")
  41. {
  42. }
  43. else if(SheetPage.Enviroment.InstanceData[this.DataField] == null)
  44. {
  45. }
  46. else if(SheetPage.Enviroment.InstanceData[this.DataField].Visible == false)
  47. {
  48. }
  49. else
  50. {
  51. if(
  52. SheetPage.Enviroment.InstanceData[this.DataField].Value != null && 
  53. this.Items.Count > 0 && 
  54. this.Items.FindByValue(SheetPage.Enviroment.InstanceData[this.DataField].Value.ToString()) != null)
  55. {
  56. this.SelectedValue = SheetPage.Enviroment.InstanceData[this.DataField].Value.ToString();
  57. }
  58. this.Enabled = SheetPage.Enviroment.InstanceData[this.DataField].Editable;
  59. }
  60. }
  61.         public virtual bool ValidateDataField(
  62.             OThinker.H3.WorkSheet.SheetPage SheetPage,
  63.             System.Collections.Generic.List<string> Errors)
  64.         {
  65.             if (
  66.                 this.DataField != null &&
  67.                 this.DataField != "" &&
  68.                 SheetPage.Enviroment.InstanceData[this.DataField] != null &&
  69.                 SheetPage.Enviroment.InstanceData[this.DataField].Visible &&
  70.                 SheetPage.Enviroment.InstanceData[this.DataField].Editable &&
  71.                 this.SelectedValue != "" &&
  72.                 this.SelectedValue != null)
  73.             {
  74.                 try
  75.                 {
  76.                     OThinker.Data.Convertor.Convert(
  77.                         this.SelectedValue,
  78.                         SheetPage.Enviroment.InstanceData[this.DataField].ItemType);
  79.                 }
  80.                 catch
  81.                 {
  82.                     Errors.Add(
  83.                         "数据格式不正确,发生转换错误,请确认输入数据的格式正确!" +
  84.                         "字段名称为:" + this.DataField + "," +
  85.                         "类型为:" + OThinker.H3.Data.DataLogicTypeConvertor.ToLogicTypeName(SheetPage.Enviroment.InstanceData[this.DataField].LogicType));
  86.                     return false;
  87.                 }
  88.             }
  89.             return true;
  90.         }
  91.         public virtual void SaveDataField(OThinker.H3.WorkSheet.SheetPage SheetPage)
  92. {
  93. if(
  94. this.DataField != null &&
  95. this.DataField != "" &&
  96. SheetPage.Enviroment.InstanceData[this.DataField] != null && 
  97. SheetPage.Enviroment.InstanceData[this.DataField].Visible && 
  98. SheetPage.Enviroment.InstanceData[this.DataField].Editable)
  99. {
  100. //写回数据
  101. object convertedValue;
  102. try
  103. {
  104. convertedValue = OThinker.Data.Convertor.Convert(
  105. this.SelectedValue, 
  106. SheetPage.Enviroment.InstanceData[this.DataField].ItemType, 
  107.                         true);
  108. }
  109. catch
  110. {
  111.                     SheetPage.Enviroment.NotifyMessage(
  112. "数据格式不正确,发生转换错误,请确认输入数据的格式正确!" + 
  113. "字段名称为:" + this.DataField + "," + 
  114. "类型为:" + OThinker.H3.Data.DataLogicTypeConvertor.ToLogicTypeName(SheetPage.Enviroment.InstanceData[this.DataField].LogicType));
  115. return;
  116. }
  117. SheetPage.Enviroment.InstanceData[DataField].Value = convertedValue;
  118. }
  119. }
  120. #endregion
  121. }
  122. }