/// <summary> /// Creates the locations grid. /// </summary> private void CreateLocationsGrid() { _gLocations = new Grid(); _gLocations.ID = this.ID + "_gCheckinLabels"; _gLocations.DisplayType = GridDisplayType.Light; _gLocations.ShowActionRow = true; _gLocations.RowItemText = "Location"; _gLocations.Actions.ShowAdd = true; //// Handle AddClick manually in OnLoad() _gLocations.Actions.AddClick += AddLocation_Click; _gLocations.GridReorder += gLocations_Reorder; var reorderField = new ReorderField(); _gLocations.Columns.Add(reorderField); _gLocations.ShowHeader = false; _gLocations.DataKeyNames = new string[] { "LocationId" }; _gLocations.Columns.Add(new BoundField { DataField = "FullNamePath", HeaderText = "Name" }); DeleteField deleteField = new DeleteField(); //// handle manually in OnLoad() deleteField.Click += DeleteLocation_Click; _gLocations.Columns.Add(deleteField); Controls.Add(_gLocations); }
/// <summary> /// Set the properties of the main grid. /// </summary> private void InitializeGrid() { ListGridControl.DataKeyNames = new string[] { "Id" }; ListGridControl.RowItemText = _entityType.FriendlyName; ListGridControl.ExportSource = ExcelExportSource.DataSource; ListGridControl.HideDeleteButtonForIsSystem = this.PreventSystemItemDelete; ListGridControl.Actions.AddClick += gList_Add; ListGridControl.GridRebind += gList_GridRebind; ListGridControl.AllowSorting = !this.ShowItemReorder; // Show Reorder handle if (this.ShowItemReorder) { _reorderColumn = new ReorderField(); ListGridControl.Columns.Insert(0, _reorderColumn); ListGridControl.GridReorder += gList_GridReorder; } // Verify block authorization bool canAddEditDelete = IsUserAuthorized(Authorization.EDIT); bool canAdministrate = IsUserAuthorized(Authorization.ADMINISTRATE); ListGridControl.Actions.ShowAdd = this.ShowItemAdd && canAddEditDelete; if (canAddEditDelete) { ListGridControl.RowSelected += gList_Edit; } // Show Security button if (this.ShowItemSecurity && canAdministrate) { _securityColumn = ListGridControl.ColumnsOfType <SecurityField>().FirstOrDefault(); if (_securityColumn == null) { _securityColumn = new SecurityField(); ListGridControl.Columns.Add(_securityColumn); } _securityColumn.EntityTypeId = _entityType.Id; } // Show Delete button ListGridControl.IsDeleteEnabled = this.ShowItemDelete && canAddEditDelete; if (this.ShowItemDelete && canAddEditDelete) { _deleteColumn = ListGridControl.ColumnsOfType <DeleteField>().FirstOrDefault(); if (_deleteColumn == null) { _deleteColumn = new DeleteField(); _deleteColumn.Click += gList_Delete; ListGridControl.Columns.Add(_deleteColumn); } } // Perform additional customization of the list grid if required. OnConfigureListGrid(this.ListGridControl); }
protected void AddDynamicControls(ContentChannel channel) { // Remove all columns gContentChannelItems.Columns.Clear(); phAttributeFilters.Controls.Clear(); if (channel != null) { // Add Reorder column var reorderField = new ReorderField(); gContentChannelItems.Columns.Add(reorderField); // Add Title column var titleField = new BoundField(); titleField.DataField = "Title"; titleField.HeaderText = "Title"; titleField.SortExpression = "Title"; gContentChannelItems.Columns.Add(titleField); // Add Attribute columns int entityTypeId = EntityTypeCache.Get(typeof(Rock.Model.ContentChannelItem)).Id; string channelId = channel.Id.ToString(); string channelTypeId = channel.ContentChannelTypeId.ToString(); foreach (var attribute in AvailableAttributes) { var control = attribute.FieldType.Field.FilterControl(attribute.QualifierValues, "filter_" + attribute.Id.ToString(), false, Rock.Reporting.FilterMode.SimpleFilter); if (control != null) { if (control is IRockControl) { var rockControl = ( IRockControl )control; rockControl.Label = attribute.Name; rockControl.Help = attribute.Description; phAttributeFilters.Controls.Add(control); } else { var wrapper = new RockControlWrapper(); wrapper.ID = control.ID + "_wrapper"; wrapper.Label = attribute.Name; wrapper.Controls.Add(control); phAttributeFilters.Controls.Add(wrapper); } string savedValue = gfFilter.GetUserPreference(MakeKeyUniqueToChannel(channel.Id, attribute.Key)); if (!string.IsNullOrWhiteSpace(savedValue)) { try { var values = JsonConvert.DeserializeObject <List <string> >(savedValue); attribute.FieldType.Field.SetFilterValues(control, attribute.QualifierValues, values); } catch { // intentionally ignore } } } string dataFieldExpression = attribute.Key; bool columnExists = gContentChannelItems.Columns.OfType <AttributeField>().FirstOrDefault(a => a.DataField.Equals(dataFieldExpression)) != null; if (!columnExists) { AttributeField boundField = new AttributeField(); boundField.DataField = dataFieldExpression; boundField.AttributeId = attribute.Id; boundField.HeaderText = attribute.Name; boundField.ItemStyle.HorizontalAlign = attribute.FieldType.Field.AlignValue; gContentChannelItems.Columns.Add(boundField); } } if (channel.ContentChannelType.DateRangeType != ContentChannelDateType.NoDates) { RockBoundField startDateTimeField; RockBoundField expireDateTimeField; if (channel.ContentChannelType.IncludeTime) { startDateTimeField = new DateTimeField(); expireDateTimeField = new DateTimeField(); } else { startDateTimeField = new DateField(); expireDateTimeField = new DateField(); } startDateTimeField.DataField = "StartDateTime"; startDateTimeField.HeaderText = channel.ContentChannelType.DateRangeType == ContentChannelDateType.DateRange ? "Start" : "Date"; startDateTimeField.SortExpression = "StartDateTime"; gContentChannelItems.Columns.Add(startDateTimeField); var dateStatusField = new BoundField(); gContentChannelItems.Columns.Add(dateStatusField); dateStatusField.DataField = "DateStatus"; dateStatusField.HeaderText = ""; dateStatusField.HtmlEncode = false; expireDateTimeField.DataField = "ExpireDateTime"; expireDateTimeField.HeaderText = "Expire"; expireDateTimeField.SortExpression = "ExpireDateTime"; if (channel.ContentChannelType.DateRangeType == ContentChannelDateType.DateRange) { gContentChannelItems.Columns.Add(expireDateTimeField); } } if (!channel.ContentChannelType.DisablePriority) { // Priority column var priorityField = new BoundField(); priorityField.DataField = "Priority"; priorityField.HeaderText = "Priority"; priorityField.SortExpression = "Priority"; priorityField.DataFormatString = "{0:N0}"; priorityField.ItemStyle.HorizontalAlign = HorizontalAlign.Right; gContentChannelItems.Columns.Add(priorityField); } // Status column if (channel.RequiresApproval) { var statusField = new BoundField(); gContentChannelItems.Columns.Add(statusField); statusField.DataField = "Status"; statusField.HeaderText = "Status"; statusField.SortExpression = "Status"; statusField.HtmlEncode = false; } // Add occurrences Count column var occurrencesField = new BoolField(); occurrencesField.DataField = "Occurrences"; occurrencesField.HeaderText = "Event Occurrences"; gContentChannelItems.Columns.Add(occurrencesField); // Add Created By column var createdByPersonNameField = new BoundField(); createdByPersonNameField.DataField = "CreatedByPersonName"; createdByPersonNameField.HeaderText = "Created By"; createdByPersonNameField.HtmlEncode = false; gContentChannelItems.Columns.Add(createdByPersonNameField); // Add Tag Field if (channel.IsTaggingEnabled) { var tagField = new BoundField(); gContentChannelItems.Columns.Add(tagField); tagField.DataField = "Tags"; tagField.HeaderText = "Tags"; tagField.ItemStyle.CssClass = "taglist"; tagField.HtmlEncode = false; } bool canEditChannel = channel.IsAuthorized(Rock.Security.Authorization.EDIT, CurrentPerson); gContentChannelItems.Actions.ShowAdd = canEditChannel; gContentChannelItems.IsDeleteEnabled = canEditChannel; if (canEditChannel) { var securityField = new SecurityField(); gContentChannelItems.Columns.Add(securityField); securityField.TitleField = "Title"; securityField.EntityTypeId = EntityTypeCache.Get(typeof(Rock.Model.ContentChannelItem)).Id; var deleteField = new DeleteField(); gContentChannelItems.Columns.Add(deleteField); deleteField.Click += gContentChannelItems_Delete; } } }