/// <summary> /// Dynamically display attributes added to the rendered workflow as columns in the <see cref="gWorkflows"/> grid /// </summary> private void AddDynamicControls() { // Remove attribute columns foreach (var column in gWorkflows.Columns.OfType <AttributeField>().ToList()) { gWorkflows.Columns.Remove(column); } if (AvailableAttributes != null) { foreach (var attribute in AvailableAttributes) { bool columnExists = gWorkflows.Columns.OfType <AttributeField>().Any(a => a.AttributeId == attribute.Id); if (!columnExists) { AttributeField boundField = new AttributeField(); boundField.DataField = attribute.Key; boundField.AttributeId = attribute.Id; boundField.HeaderText = attribute.Name; var attributeCache = AttributeCache.Get(attribute.Id); if (attributeCache != null) { boundField.ItemStyle.HorizontalAlign = attributeCache.FieldType.Field.AlignValue; } gWorkflows.Columns.Add(boundField); } } } // Add PersonLinkField column var personLinkField = new PersonProfileLinkField(); personLinkField.LinkedPageAttributeKey = AttributeKeys.PersonProfilePage; gWorkflows.Columns.Add(personLinkField); // Add delete column var deleteField = new DeleteField(); deleteField.Click += gWorkflows_Delete; gWorkflows.Columns.Add(deleteField); }
/// <summary> /// Adds the PersonProfilePage button link and the "delete" row button column. /// </summary> private void AddGridRowButtons() { // Add Link to Profile Page Column if (!string.IsNullOrEmpty(GetAttributeValue("PersonProfilePage"))) { var personProfileLinkField = new PersonProfileLinkField { LinkedPageAttributeKey = "PersonProfilePage" }; gSteps.Columns.Add(personProfileLinkField); } // Add delete column var deleteField = new DeleteField(); gSteps.Columns.Add(deleteField); deleteField.Click += DeleteStep_Click; }