流程平台:子表控件(二) - 属性、事件、方法
子表控件的元数据如下:属性、事件、方法:
public class SheetSubTableSZ : WebControl, ISheetControl { // 分隔符 public const char Separator = ';'; public const string SeqNoColumnName = "序号"; // 添加按钮 public Button Add; // 子表的编辑视图 public Table EditTable; // 子表的显示视图 public GridView ItemView; public Button Remove; public Label Result; public Button Update; public SheetSubTableSZ(); public override Color BackColor { get; set; } // 当前表的列定义 protected Dictionary<string, DataColumn> Columns { get; } // 绑定字段 public string DataField { get; set; } // 如果使能,则显示编辑控件和选中列 public override bool Enabled { get; set; } public override string ID { get; set; } // 新建的项目的ID public string NewItemIdsText { get; set; } // 是否是必输 public bool Required { get; } // 从数据库中获得当前控件中行的数量 public int RowCount { get; } // 对应的表名称 public string TableName { get; } // 页脚加载事件 public event EventHandler<SheetSubTableSZ.CountingEventArgs> Counting; // 编辑器初始化事件 public event EventHandler<SheetSubTableSZ.EditorInitializingEventArgs> EditorInitializing; // 编辑器加载事件 public event EventHandler<SheetSubTableSZ.EditorLoadingEventArgs> EditorLoading; // 编辑器保存事件 public event EventHandler<SheetSubTableSZ.EditorSavingEventArgs> EditorSaving; public event EventHandler<GridViewCommandEventArgs> RowCommand; // 数据绑定事件 public event EventHandler<GridViewRowEventArgs> RowDataBound; public void Add_Click(object sender, EventArgs e); public object AvgColumn(string ColumnName); // 创建执行SQL的对象 protected ICommand CreateCommand(); // 根据列名称检索列 public int GetColumnIndex(string ColumnName); public static Control GetDefaultControl(string ColumnName, Type ColumnType); public static string GetDefaultControlValue(string ColumnName, Type ColumnType, Control Control, ref bool Valid, ref string ErrorMessage); // 获得某个列的编辑控件 public Control GetEditControl(string ColumnName); // 设置字段/列显示名称和描述 public static void GridView_SetCellHeaderText(GridViewRowEventArgs e, string s_FieldName, string s_HeaderText); // 设置列不可见/隐藏 public void GridView_SetCellNotVisible(GridViewRowEventArgs e, string s_FieldName); // 是否是保留系统列 protected bool IsSysColumn(string ColumnName); // 加载数据 public virtual void LoadDataField(ISheetPage SheetPage); // 加载所有数据//yzg:加载所有数据到GridView public void LoadTable(); protected override void OnInit(EventArgs e); protected override void OnLoad(EventArgs e); protected override void Render(HtmlTextWriter writer); public virtual void SaveDataField(ISheetPage SheetPage); // 设置字段标签和控件的样式 public void SetColumnCss(string columnName, string label_style, string control_style, string desc_style); // 设置字段的显示名称和描述 public void SetColumnDisplayNameDesc(string columnName, string displayName, string description); // 设置列隐藏或显示 public void SetColumnVisiable(string columnName, bool EditVisible, bool GridCellVisible); public static void SetDefaultControlValue(string ColumnName, Type ColumnType, Control Control, object Value); // 设置字段的显示名称和描述 public void SetSortColumn(string columnName, SheetSubTableSZ.SortType sortType); // 设置子表控件GridView的模板列 public void SetTemplateColumns(DataControlField columnName); public object SumColumn(string ColumnName); public void Update_Click(object sender, EventArgs e); // 验证输入 public virtual bool ValidateDataField(ISheetPage SheetPage, SheetSubmitEventArgs Args, List<string> Errors); // 子表操作方式 public enum ActionType { // 添加操作 Add = 0, // 更新操作 Update = 1, // 删除操作 Remove = 2, // 加载数据操作 LoadData = 3, // 无操作 None = 4, } // 页脚的加载方式 public enum CountingType { // 总和 Sum = 0, // 平均 Avg = 1, // 计数 Count = 2, // 不做统计 None = 3, } // 子表排序类型 public enum SortType { // 升序 Asc = 0, // 降序 Desc = 1, // 默认 Normal = 2, } // 页脚加载事件 public class CountingEventArgs : EventArgs { public CountingEventArgs(string ColumnName, SheetSubTableSZ.CountingType CountingType); // 列名称 public string ColumnName { get; } // 统计方式 public SheetSubTableSZ.CountingType CountingType { get; set; } } // 编辑器初始化事件 public class EditorInitializingEventArgs : EventArgs { public EditorInitializingEventArgs(string ColumnName, Type ColumnType); // 列名称 public string ColumnName { get; } // 列的类型 public Type ColumnType { get; } // 编辑控件 public Control Control { get; set; } public string Description { get; set; } // 显示名称 public string DisplayName { get; set; } // 该控件是否可见 public bool Visible { get; set; } } // 编辑器加载事件 public class EditorLoadingEventArgs : EventArgs { public EditorLoadingEventArgs(string ColumnName, Type ColumnType, object Value, Control Control); // 当前行所有单元格和值 public Dictionary<string, string> Cells { get; set; } // 列名称 public string ColumnName { get; } // 列类型 public Type ColumnType { get; } // 编辑控件 public Control Control { get; } // 如果设置了值,则把这个属性设置为true public bool Set { get; set; } // 值 public object Value { get; } } public class EditorSavingEventArgs : EventArgs { public EditorSavingEventArgs(string ColumnName, Control Control); // 子表操作类型:Add , Update public SheetSubTableSZ.ActionType Action { get; set; } // 当前行所有单元格和值 public Dictionary<string, string> Cells { get; set; } // 列名称 public string ColumnName { get; } // 编辑控件 public Control Control { get; } // 如果不合法则设置错误消息 public string ErrorMessage { get; set; } // 是否获得 public bool Get { get; set; } // 值是否合法 public bool Valid { get; set; } // 值的字符串形式 public string Value { get; set; } } }