我觉得这种思路好,所以把它贴出来

来源:互联网 发布:微信小程序上传数据 编辑:程序博客网 时间:2024/04/28 02:44

public partial class CustomGridLookUpEdit : GridLookUpEdit { #region 控件类别枚举 /// <summary> /// 控件类别枚举 /// </summary> public enum GridLookUpEditType { /// <summary> /// none /// </summary> None, /// <summary> /// 客户信息 /// </summary> Customer, /// <summary> /// 厂商信息 /// </summary> Provider, /// <summary> /// 产品信息 /// </summary> Prod, /// <summary> /// 销售单据 /// </summary> SaleOrder, /// <summary> /// 采购单据 /// </summary> StockOrder } #endregion #region 内部成员字段 /// <summary> /// datasource /// </summary> private DataSet _ds; /// <summary> /// 显示的文本 /// </summary> private string _displayText = null; /// <summary> /// 显示文本对应的值 /// </summary> private string _displayValue = null; /// <summary> /// 控件类别 /// </summary> private GridLookUpEditType _type = GridLookUpEditType.None; #endregion #region 封装成员字段 /// <summary> /// /// </summary> public DataSet Ds { get { return _ds; } set { _ds = value; } } /// <summary> /// /// </summary> public string DisplayText { get { return _displayText; } set { _displayText = value; } } /// <summary> /// /// </summary> public string DisplayValue { get { return _displayValue; } set { _displayValue = value; } } /// <summary> /// /// </summary> public GridLookUpEditType EditType { get { return _type; } set { _type = value; SetDisplayValue(_type); } } #endregion #region 自动生成代码 /// <summary> /// 构造 /// </summary> public CustomGridLookUpEdit() { InitializeComponent(); } /// <summary> /// 重构 /// </summary> /// <param name="container"></param> public CustomGridLookUpEdit(IContainer container) { container.Add(this); InitializeComponent(); } #endregion #region 选择对应类别 /// <summary> /// /// </summary> public void SetDisplayValue(GridLookUpEditType type) { switch (type) { case GridLookUpEditType.None: None(); break; //none case GridLookUpEditType.Customer: CustomerEdit(); break; //客户信息 case GridLookUpEditType.Provider: ProviderEdit(); break; //厂商信息 case GridLookUpEditType.Prod: ProdEdit(); break; //产品信息 case GridLookUpEditType.SaleOrder: SaleOrderEdit(); break; //销售订单 case GridLookUpEditType.StockOrder: StockOrderEdit(); break; //采购订单 } } /// <summary> /// none /// </summary> private void None() { this.Ds = null; this.DisplayText = null; this.DisplayValue = null; } /// <summary> /// 客户信息 /// </summary> private void CustomerEdit() { this.DisplayText = "Customer"; this.DisplayValue = "CustomerId"; //比较理想的是在这写绑定数据源,可是实现不了 // (new GetDBType()).GetDataBase().GetData(DALClassType.Customer); } /// <summary> /// 产商信息 /// </summary> private void ProviderEdit() { this.DisplayText = "Provider"; this.DisplayValue = "ProviderId"; } /// <summary> /// 产品信息 /// </summary> private void ProdEdit() { this.DisplayText = "Prod"; this.DisplayValue = "ProdId"; } /// <summary> /// 销售订单 /// </summary> private void SaleOrderEdit() { this.DisplayText = "SaleOrder"; this.DisplayValue = "SaleOrderId"; } /// <summary> /// 采购订单 /// </summary> private void StockOrderEdit() { this.DisplayText = "StockOrder"; this.DisplayValue = "StockOrderId"; } #endregion #region 数据|逻辑处理 /// <summary> /// 数据绑定 /// </summary> private void DataBinding() { this.Properties.TextEditStyle = TextEditStyles.Standard; this.Properties.DataSource = this._ds.Tables[0]; this.Properties.DisplayMember = this._displayText; this.Properties.ValueMember = this._displayValue; } #endregion }

原创粉丝点击