private MB.WinBase.IFace.IBaseDataBindingEdit getDirectnessBaseEdit(Control ctl) { if (ctl.Parent == null) { return(null); } MB.WinBase.IFace.IBaseDataBindingEdit baseEdit = ctl.Parent as MB.WinBase.IFace.IBaseDataBindingEdit; if (baseEdit != null) { return(baseEdit); } else { return(getDirectnessBaseEdit(ctl.Parent)); } }
private void setNullValue() { //先判断上级控件 MB.WinBase.IFace.IBaseDataBindingEdit editForm = getDirectnessBaseEdit(this) as MB.WinBase.IFace.IBaseDataBindingEdit; if (editForm == null) { editForm = this.ParentForm as MB.WinBase.IFace.IBaseDataBindingEdit; } if (editForm != null) { object mainEntity = editForm.CurrentEditEntity; foreach (MB.WinBase.Common.EditCtlDataMappingInfo info in _ColumnEditCfgInfo.EditCtlDataMappings) { MB.Util.MyReflection.Instance.InvokePropertyForSet(mainEntity, info.ColumnName, null); } } }
//创建查询过滤对象 private void createFilterObjectData() { System.Windows.Forms.Control parentHoster = MB.WinBase.ShareLib.Instance.GetInvokeDataHosterControl(this.Parent); if (parentHoster != null) { _FrmDataAssistant = MB.WinBase.ObjectDataFilterAssistantHelper.Instance.CreateDataAssistantObject(this, _ColumnEditCfgInfo, parentHoster); } else { MB.WinBase.IFace.IBaseDataBindingEdit editForm = getDirectnessBaseEdit(this) as MB.WinBase.IFace.IBaseDataBindingEdit; if (editForm == null) { editForm = this.ParentForm as MB.WinBase.IFace.IBaseDataBindingEdit; } object currentEditEntity = null; if (editForm != null) { currentEditEntity = editForm.CurrentEditEntity; } if (_ClientRule == null) { parentHoster = MB.WinBase.ShareLib.Instance.GetControlParentForm(this.Parent); IForm frm = parentHoster as IForm; if (frm != null) { _ClientRule = frm.ClientRuleObject; } } _FrmDataAssistant = MB.WinBase.ObjectDataFilterAssistantHelper.Instance.CreateDataAssistantObject(this, currentEditEntity, _ColumnEditCfgInfo, _ClientRule); } if (_FrmDataAssistant != null) { _FrmDataAssistant.MaxSelectRows = this._ColumnEditCfgInfo.MaxSelectRows; _FrmDataAssistant.MultiSelect = this.MultiSelect; _FrmDataAssistant.QueryObject = _QueryObject; _FrmDataAssistant.AfterGetObjectData += new MB.WinBase.IFace.GetObjectDataAssistantEventHandle(assistant_AfterGetObjectData); } }
//设置选择行的值 private void setSelectValue(IList rows, bool isKeyDown) { //先判断上级控件 MB.WinBase.IFace.IBaseDataBindingEdit editForm = getDirectnessBaseEdit(this) as MB.WinBase.IFace.IBaseDataBindingEdit; if (editForm == null) { editForm = this.ParentForm as MB.WinBase.IFace.IBaseDataBindingEdit; } if (editForm != null) { object mainEntity = editForm.CurrentEditEntity; try { if (rows != null && rows.Count > 0) { foreach (MB.WinBase.Common.EditCtlDataMappingInfo info in _ColumnEditCfgInfo.EditCtlDataMappings) { object dataObject = rows[0]; object val = null; if (!string.IsNullOrEmpty(info.SourceColumnName)) { val = MB.Util.MyReflection.Instance.InvokePropertyForGet(rows[0], info.SourceColumnName); } object valDesc = MB.Util.MyReflection.Instance.InvokePropertyForGet(mainEntity, info.ColumnName); if (val != null) { if ((valDesc == null || string.Compare(val.ToString(), valDesc.ToString(), true) != 0)) { MB.Util.MyReflection.Instance.InvokePropertyForSet(mainEntity, info.ColumnName, val.ToString()); } } else { MB.Util.MyReflection.Instance.InvokePropertyForSet(mainEntity, info.ColumnName, null); } } } else { if (!isKeyDown) { foreach (MB.WinBase.Common.EditCtlDataMappingInfo info in _ColumnEditCfgInfo.EditCtlDataMappings) { MB.Util.MyReflection.Instance.InvokePropertyForSet(mainEntity, info.ColumnName, null); } } } } catch (Exception ex) { throw new MB.Util.APPException("请检查EditCtlDataMappingInfo 的Mapping 信息是否正确 ", MB.Util.APPMessageType.SysErrInfo, ex); } } else { if (rows != null && rows.Count > 0) { this.btnEdit.Text = convertToString(rows, true); } else if (!isKeyDown) { this.btnEdit.Text = string.Empty; } } }