流程平台:表单页面(二)- 表单页面事件
表单主要关注几个事件的处理:
页面加载事件:protected void Page_Load(object sender, EventArgs e)
不需要此事件中写任何代码
表单加载事件:public override void LoadDataFields()
按需要在此事件中写代码,事件覆盖Page_Load,在该事件中的“base.LoadDataFields()”代码后面写原本需要在Page_Load中的代码。
表单提交校验事件:public override bool ValidateDataFields(OThinker.H3.WorkSheet.SheetSubmitEventArgs Args, List<string> Errors)
在表单那保存前进行必要的校验。
表单保存事件:public override void SaveDataFields(OThinker.H3.WorkSheet.SheetSubmitEventArgs Args)
需要在此事件中写保存一些数据项的值或一些第三方接口处理事件
流程取消事件:public override string CancelInstance(string InstanceId, string WorkItemId)
流程的取消事件,如果在取消流程的同时还需要对其他数据进行处理(第三方数据、子表数据等),可以添加该事件进行处理;流程取消不涉及到需要其他处理的,则不需要添加该事件。
流程删除事件:public override string DeleteInstance(string InstanceId)
流程的删除事件,如果在删除流程的同时还需要对其他数据进行处理(第三方数据、子表数据等),可以添加该事件进行处理;流程删除不涉及到需要其他处理的,则不需要添加该事件。
工作项批量处理事件:public override string WorkItemByBatch(OThinker.H3.WorkItem.WorkItem workItem)
工作项的批量处理,如果批量处理的同时还需要对其他数据进行处理(第三方数据、子表数据等),可以添加该事件进行处理;工作项批量不涉及到需要其他处理的,则不需要添加该事件。
表单页面在加载时,几个常用事件加载的优先级从高->低为:
OnPreInit > SubTable_EditorInitializing > [Page_Load] > LoadDataFields > SubTable_RowDataBound
表单页面保存时,事件优先级从高->低位:ValidateDataFields > SaveDataFields