/* private void MergeParameterItems(WfParameterNeedToBeCollected items, WfParameterNeedToBeCollected wfParameters) * { * foreach (WfParameterDescriptor item in wfParameters) * { * if (!items.ContainsKey(item.ParameterName)) * { * items.Add(item); * } * } * } */ private void CollectParameter(WfParameterDescriptor wfpd) { Control control = WebControlUtility.FindControlByID(this.Page, wfpd.ControlID, true); if (control != null) { //控件对象路径 string targetPro = string.Empty; //控件对象属性 string targetProName = wfpd.ControlPropertyName; DataBindingControl.SplitPath(control, wfpd.ControlPropertyName, out targetPro, out targetProName); //获取目标属性值 object targetItem = DataBindingControl.FindObjectByPath(control, targetPro); if (targetItem != null) { object targetValue = DataBindingControl.FindObjectByPath(targetItem, targetProName); Type realType = typeof(string); if (wfpd.ParameterType.TryToRealType(out realType)) { this.CurrentProcess.ApplicationRuntimeParameters[wfpd.ParameterName] = DataConverter.ChangeType(targetValue, realType); } } } }
protected void Page_Load(object sender, EventArgs e) { JSONSerializerExecute.RegisterConverter(typeof(WfParameterDescriptorConverter)); WfParameterDescriptor wfpd = new WfParameterDescriptor(); this.hiddenWfParameterTemplate.Value = JSONSerializerExecute.Serialize(wfpd); }