private void bindDynamicTemplate() { try { cmbDynamicTemplate.Properties.Items.Clear(); IList list = DynamicColumnSettingHelper.GetDynamicColumnSettings(_ClientRuleObject); _Settings = list as List <GridDynamicColumnSettingInfo>; if (_Settings == null || _Settings.Count == 0) { _Settings = new List <GridDynamicColumnSettingInfo>(); return; } var orderSettings = _Settings.OrderByDescending(o => o.LastModifyDate); foreach (var col in orderSettings) { cmbDynamicTemplate.Properties.Items.Add(col.Name); } cmbDynamicTemplate.SelectedIndex = 0; } catch (Exception ex) { MB.WinBase.ApplicationExceptionTerminate.DefaultInstance.ExceptionTerminate(ex); } }
private void loadDynamicColumns() { if (string.IsNullOrEmpty(cmbDynamicTemplate.Text)) { return; } //根据模块名称加载动态列数据 var dynamicColumns = DynamicColumnSettingHelper.GetDynamicColumnByTemplateName(_ClientRuleObject, cmbDynamicTemplate.Text); if (dynamicColumns == null) { throw new MB.Util.APPException(string.Format("获取模板 {0} 动态列失败!", cmbDynamicTemplate.Text), Util.APPMessageType.DisplayToUser); } _DsDynamic = MB.Util.MyConvert.Instance.ConvertEntityToDataSet <DynamicColumnInfo>(dynamicColumns, new string[] { "Name", "Description" }); if (_DsDynamic == null || _DsDynamic.Tables.Count == 0) { throw new MB.Util.APPException(string.Format("动态列实体对象转换失败!"), Util.APPMessageType.DisplayToUser); } }
void btnSave_Click(object sender, EventArgs e) { try { //保存当前设置值 List <DynamicColumnInfo> list = new List <DynamicColumnInfo>(); if (!string.IsNullOrEmpty(this.cmbDynamicTemplate.Text)) { DataRow[] drs = _DsSource.Tables[0].Select("IsDynamic = true"); if (drs.Length == 0) { throw new MB.Util.APPException("请选择动态显示列,动态列数据不能为空!", Util.APPMessageType.DisplayToUser); } foreach (DataRow dr in drs) { DynamicColumnInfo col = new DynamicColumnInfo(); col = MB.Util.MyReflection.Instance.FillModelObject <DynamicColumnInfo>(col, dr); list.Add(col); } } string sectionName = _ClientRuleObject.GetType().FullName + " " + _ClientRuleObject.ClientLayoutAttribute.UIXmlConfigFile; List <GridColumnSettingInfo> gridColumnSettings = new MB.Util.Serializer.DataContractFileSerializer <List <GridColumnSettingInfo> >(GRID_COLUMN_SETTING_FULLNAME).Read(); if (!string.IsNullOrEmpty(this.cmbDynamicTemplate.Text)) { GridColumnSettingInfo setting = null; GridDynamicColumnSettingInfo dynSetting = null; if (gridColumnSettings == null) { gridColumnSettings = new List <GridColumnSettingInfo>(); } else { setting = gridColumnSettings.Find(o => o.Name.Equals(sectionName)); dynSetting = _Settings.Find(o => o.Name.Equals(this.cmbDynamicTemplate.Text.Trim())); } if (dynSetting == null) { dynSetting = new GridDynamicColumnSettingInfo(); dynSetting.Name = this.cmbDynamicTemplate.Text.Trim(); dynSetting.LastModifyDate = DateTime.Now; _Settings.Add(dynSetting); } else { dynSetting.LastModifyDate = DateTime.Now; } if (setting == null) { setting = new GridColumnSettingInfo(); setting.Name = sectionName; gridColumnSettings.Add(setting); } setting.DynamicColumns = _Settings; } foreach (string name in _DeleteItems) { var item = gridColumnSettings.Find(o => o.Name.Equals(sectionName)); if (item != null) { var dynamicCol = item.DynamicColumns.Find(o => o.Name.Equals(name)); if (dynamicCol != null) { item.DynamicColumns.Remove(dynamicCol); } if (item.DynamicColumns.Count == 0) { gridColumnSettings.Remove(item); } } DynamicColumnSettingHelper.DeleteDynamicColumnSetting(_ClientRuleObject, name); } DynamicColumnSettingHelper.SaveDynamicColumnSettings(_ClientRuleObject, this.cmbDynamicTemplate.Text, list, gridColumnSettings); MB.WinBase.MessageBoxEx.Show("保存成功!"); this.DialogResult = System.Windows.Forms.DialogResult.OK; } catch (Exception ex) { MB.WinBase.ApplicationExceptionTerminate.DefaultInstance.ExceptionTerminate(ex); } }