private void BtnAddButton_Click(object sender, EventArgs e) { var widgity = Widgities.Where(w => w.Guid == CurrentEditWidgity).FirstOrDefault(); Rock.Attribute.Helper.GetEditValues(phAttributesEdit, widgity); var widgityItem = new WidgityItem { Guid = Guid.NewGuid(), WidgityId = widgity.Id, WidgityTypeId = widgity.WidgityTypeId }; widgityItem.LoadAttributes(); var widgityItems = WidgityItems[widgity.Guid]; widgityItems.Add(widgityItem); UpdateWidgityItemAttributes(widgity); SaveState(); GetExpandedPanels(); ExpandedPanels.Add(widgityItem.Guid); ShowWidgities(true); }
private void BuildWidigityItemAttibutes(Widgity widgity, bool setValues) { pnlItems = new Panel(); pnlMenu.Controls.Add(pnlItems); var widgityType = WidgityTypeCache.Get(widgity.WidgityTypeId); if (widgityType.HasItems) { pnlItems.CssClass = "widgityItemControls"; var widgityItems = WidgityItems[widgity.Guid]; if (widgityItems.Any()) { foreach (var widgityItem in widgityItems) { Panel panel = new Panel(); pnlItems.Controls.Add(panel); panel.Attributes["data-component-id"] = widgityItem.Guid.ToString(); PanelWidget panelWidget = new PanelWidget { ID = string.Format("pnlItem_{0}", widgityItem.Guid), }; panel.Controls.Add(panelWidget); if (ExpandedPanels != null && ExpandedPanels.Contains(widgityItem.Guid)) { panelWidget.Expanded = true; } if (widgityItem.AttributeValues.Any()) { panelWidget.Title = "<a class='btn btn-xs btn-link ui-sortable-handle'><i class='fa fa-bars ui-sortable-handle'></i></a> " + widgityItem.AttributeValues.FirstOrDefault().Value.ValueFormatted; } else { panelWidget.Title = "<a class='btn btn-xs btn-link ui-sortable-handle'><i class='fa fa-bars ui-sortable-handle'></i></a> "; } HiddenField hiddenField = new HiddenField { ID = string.Format("hfItem_{0}", widgityItem.Guid), Value = widgityItem.Guid.ToString() }; panelWidget.Controls.Add(hiddenField); PlaceHolder phItemAttributes = new PlaceHolder { ID = string.Format("phItem_{0}", widgityItem.Guid) }; panelWidget.Controls.Add(phItemAttributes); LinkButton linkButton = new LinkButton() { ID = string.Format("btnRemove_{0}", widgityItem.Guid), CssClass = "btn btn-danger btn-xs", Text = "Remove Item" }; panelWidget.Controls.Add(linkButton); linkButton.Click += (s, e) => { DeleteWidgityItem(widgityItem.Guid); }; Rock.Attribute.Helper.AddEditControls(widgityItem, phItemAttributes, setValues, this.ID + "ValidationGroup"); } } else { pnlItems.Controls.Add(new Literal { Text = "<i>No items. Click Add Item to add a new item to this widgity.</i>" }); } LinkButton btnAddButton = new LinkButton { ID = this.ID + "_AddItem", Text = "Add Item", CssClass = "btn btn-default btn-xs", CausesValidation = false }; pnlMenu.Controls.Add(btnAddButton); btnAddButton.Click += BtnAddButton_Click; } }