SheetDropDownList.cs
资源名称:H3_OA.rar [点击查看]
上传用户:li2971742
上传日期:2021-11-18
资源大小:39096k
文件大小:7k
源码类别:
OA系统
开发平台:
C#
- using System;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.ComponentModel;
- using System.Drawing;
- using System.Web.UI.Design;
- using System.Drawing.Design;
- [assembly:TagPrefix("OThinker.H3.WorkSheet","SheetControls")]
- namespace OThinker.H3.WorkSheet
- {
- /// <summary>
- /// 表单下拉框
- /// </summary>
- [ToolboxBitmap(typeof(SheetDropDownList),"OThinker.H3.WorkSheet.SheetDropDownList.bmp")]
- [ToolboxData("<{0}:SheetDropDownList runat=server></{0}:SheetDropDownList>")]
- public class SheetDropDownList : System.Web.UI.WebControls.DropDownList, ISheetControl
- {
- public SheetDropDownList()
- {
- }
- private RenderType _RenderType = RenderType.LabelWhenDisable;
- /// <summary>
- /// 显示方式
- /// </summary>
- [Bindable(true), Category("WorkSheet"), Description("控制控件的显示方式")]
- public RenderType RenderType
- {
- get
- {
- return this._RenderType;
- }
- set
- {
- this._RenderType = value;
- }
- }
- #region SheetDropDownList属性
- private string _DataField = null;
- [Bindable(true), Category("WorkSheet"), DefaultValue("")]
- [Editor(typeof(DataSelector), typeof(UITypeEditor))]
- public string DataField
- {
- get
- {
- return this._DataField;
- }
- set
- {
- this._DataField = value;
- }
- }
- private string _SourceDataField = null;
- [Bindable(true), Category("WorkSheet"), DefaultValue("")]
- [Editor(typeof(DataSelector), typeof(UITypeEditor))]
- public string SourceDataField
- {
- get
- {
- return this._SourceDataField;
- }
- set
- {
- this._SourceDataField = value;
- }
- }
- #endregion
- #region ISheetControl 成员
- public virtual void LoadDataField(OThinker.H3.WorkSheet.SheetPage SheetPage)
- {
- if (this.SourceDataField == null || this.SourceDataField == "")
- {
- }
- else if (SheetPage.Enviroment.InstanceData[this.SourceDataField] == null)
- {
- }
- else
- {
- object source = SheetPage.Enviroment.InstanceData[this.SourceDataField].Value;
- if (source != null)
- {
- this.DataSource = source;
- this.DataBind();
- }
- }
- if (this.DataField == null || this.DataField == "")
- {
- }
- else if (SheetPage.Enviroment.InstanceData[this.DataField] == null)
- {
- }
- else if (SheetPage.Enviroment.InstanceData[this.DataField].Visible == false)
- {
- this.Visible = false;
- }
- else
- {
- object selectedValue = SheetPage.Enviroment.InstanceData[this.DataField].Value;
- if (selectedValue == null)
- {
- }
- else if (this.Items.FindByValue(selectedValue.ToString()) != null)
- {
- this.SelectedValue = selectedValue.ToString();
- }
- else if (selectedValue.ToString() != "")
- {
- this.Items.Add(selectedValue.ToString());
- this.SelectedValue = selectedValue.ToString();
- }
- this.Enabled = SheetPage.Enviroment.InstanceData[this.DataField].Editable;
- }
- }
- public virtual bool ValidateDataField(OThinker.H3.WorkSheet.SheetPage SheetPage, System.Collections.Generic.List<string> Errors)
- {
- if (
- this.DataField != null &&
- this.DataField != "" &&
- SheetPage.Enviroment.InstanceData[this.DataField] != null &&
- SheetPage.Enviroment.InstanceData[this.DataField].Visible &&
- SheetPage.Enviroment.InstanceData[this.DataField].Editable)
- {
- //写回数据
- object convertedValue;
- try
- {
- convertedValue = OThinker.Data.Convertor.Convert(
- this.SelectedValue,
- SheetPage.Enviroment.InstanceData[this.DataField].ItemType,
- true);
- }
- catch
- {
- Errors.Add(
- "数据格式不正确,发生转换错误,请确认输入数据的格式正确!" +
- "字段名称为:" + this.DataField + "," +
- "类型为:" + OThinker.H3.Data.DataLogicTypeConvertor.ToLogicTypeName(SheetPage.Enviroment.InstanceData[this.DataField].LogicType));
- return false;
- }
- }
- return true;
- }
- public virtual void SaveDataField(OThinker.H3.WorkSheet.SheetPage SheetPage)
- {
- if (
- this.DataField != null &&
- this.DataField != "" &&
- SheetPage.Enviroment.InstanceData[this.DataField] != null &&
- SheetPage.Enviroment.InstanceData[this.DataField].Visible &&
- SheetPage.Enviroment.InstanceData[this.DataField].Editable)
- {
- //写回数据
- object convertedValue;
- try
- {
- convertedValue = OThinker.Data.Convertor.Convert(
- this.SelectedValue,
- SheetPage.Enviroment.InstanceData[this.DataField].ItemType,
- true);
- }
- catch
- {
- SheetPage.Enviroment.NotifyMessage(
- "数据格式不正确,发生转换错误,请确认输入数据的格式正确!" +
- "字段名称为:" + this.DataField + "," +
- "类型为:" + OThinker.H3.Data.DataLogicTypeConvertor.ToLogicTypeName(SheetPage.Enviroment.InstanceData[this.DataField].LogicType));
- return;
- }
- SheetPage.Enviroment.InstanceData[DataField].Value = convertedValue;
- }
- }
- #endregion
- protected override void Render(HtmlTextWriter writer)
- {
- if (this.Enabled || this.RenderType != RenderType.LabelWhenDisable)
- {
- base.Render(writer);
- }
- else if (this.SelectedIndex == -1)
- {
- writer.Write("");
- }
- else
- {
- writer.Write(this.SelectedItem.Text);
- }
- }
- }
- }