コード例 #1
0
        private void CreateControls(bool setValues)
        {
            fsAttributes.Controls.Clear();

            hfAttributeOrder.Value = AttributeList.AsDelimited("|");

            if (Person != null)
            {
                foreach (int attributeId in AttributeList)
                {
                    var    attribute      = AttributeCache.Read(attributeId);
                    string attributeValue = Person.GetAttributeValue(attribute.Key);
                    string formattedValue = string.Empty;

                    if (ViewMode != VIEW_MODE_EDIT || !attribute.IsAuthorized(Authorization.EDIT, CurrentPerson))
                    {
                        if (ViewMode == VIEW_MODE_ORDER)
                        {
                            var div = new HtmlGenericControl("div");
                            fsAttributes.Controls.Add(div);
                            div.Attributes.Add("data-attribute-id", attribute.Id.ToString());
                            div.Attributes.Add("class", "form-group");

                            var a = new HtmlGenericControl("a");
                            div.Controls.Add(a);

                            var i = new HtmlGenericControl("i");
                            a.Controls.Add(i);
                            i.Attributes.Add("class", "fa fa-bars");

                            div.Controls.Add(new LiteralControl(" " + attribute.Name));
                        }
                        else
                        {
                            if (attribute.FieldType.Class == typeof(Rock.Field.Types.ImageFieldType).FullName)
                            {
                                formattedValue = attribute.FieldType.Field.FormatValueAsHtml(fsAttributes, attributeValue, attribute.QualifierValues, true);
                            }
                            else
                            {
                                formattedValue = attribute.FieldType.Field.FormatValueAsHtml(fsAttributes, attributeValue, attribute.QualifierValues, false);
                            }

                            if (!string.IsNullOrWhiteSpace(formattedValue))
                            {
                                fsAttributes.Controls.Add(new RockLiteral {
                                    Label = attribute.Name, Text = formattedValue
                                });
                            }
                        }
                    }
                    else
                    {
                        attribute.AddControl(fsAttributes.Controls, attributeValue, string.Empty, setValues, true);
                    }
                }
            }

            pnlActions.Visible = (ViewMode != VIEW_MODE_VIEW);
        }