public override void Create(Control container, IConfigurationType config, ITemplatable templatable, IEnumerable registry, IBinder binder, WebPartManager manager) { if (null == container) { throw new ArgumentNullException("container"); } if (null == config) { throw new ArgumentNullException("config"); } if (!(config is IConfigurationSection)) { throw new ArgumentException("config must be an IConfigurationSection"); } if (!(registry is ITemplatingItemsCollection)) { throw new ArgumentException("registry must be an ITemplatingItemsCollection"); } ITemplatingItemsCollection filters = registry as ITemplatingItemsCollection; IDictionary <string, IConfigurationElement> itemElements = (config as IConfigurationSection).Elements; if (itemElements.ContainsKey("filter")) { Table table; if (container is Table) { table = (container as Table); } else { table = new Table(); table.ID = container.ID + "filter"; } table.ApplyStyle(templatable.FilterStyle); for (int i = 0; i < filters.Count; i++) { foreach (IConfigurationElement element in itemElements["filter"].Elements.Values) { string prefix = "filter" + element.ConfigKey + i.ToString(); this.DisplayItem(table, element, prefix, binder, filters[i], templatable.FilterRowStyle, templatable.InvalidItemStyle, manager); } } if (!(container is Table)) { container.Controls.Add(table); } } }
public override void Extract(Control container, IConfigurationType config, IEnumerable registry, WebPartManager manager) { if (null == container) { throw new ArgumentNullException("container"); } if (null == config) { throw new ArgumentNullException("config"); } if (!(config is IConfigurationSection)) { throw new ArgumentException("config must be an IConfigurationSection"); } if (!(registry is ITemplatingItemsCollection)) { throw new ArgumentException("registry must be an ITemplatingItemsCollection"); } ITemplatingItemsCollection filters = registry as ITemplatingItemsCollection; if (filters.Count != 0) { IDictionary <string, IConfigurationElement> itemElements = (config as IConfigurationSection).Elements; if (itemElements.ContainsKey("filter")) { for (int i = 0; i < filters.Count; i++) { Dictionary <string, object> data = filters[i].Data as Dictionary <string, object>; foreach (IConfigurationElement element in itemElements["filter"].Elements.Values) { string prefix = "filter" + element.ConfigKey + i.ToString(); foreach (IConfigurationElement fieldElement in element.Elements.Values) { foreach (IConfigurationElement propertyElement in fieldElement.Elements.Values) { if (propertyElement.Attributes.ContainsKey("push")) { string propertyName = propertyElement.GetAttributeReference("member").Value.ToString(); string sourcePropertyName = propertyElement.GetAttributeReference("push").Value.ToString(); if (!data.ContainsKey(sourcePropertyName)) { data.Add(sourcePropertyName, null); } string id = string.Concat(new string[] { container.ID, "-", element.ConfigKey, "-", prefix, "-", fieldElement.ConfigKey, "-ctrl" }); Control fieldControl = ReflectionServices.FindControlEx(id, container); if (null != fieldControl) { data[sourcePropertyName] = ReflectionServices.ExtractValue(fieldControl, propertyName); } } } } } } } } }
public virtual void CreateFilter(IConfigurationType config, ITemplatingItemsCollection filters, IBinder binder, ITemplatable templatable) { FiltersTemplate.Instance.Create(_container, config, templatable, filters, binder, this.manager); }
public override void Extract(Control container, IConfigurationType config, ITemplatable templatable, IBinder binder, IEnumerable registry, ITemplatingItem item, int itemIndex, int itemsCount, WebPartManager manager) { if (null == container) { throw new ArgumentNullException("container"); } if (null == config) { throw new ArgumentNullException("config"); } if (!(config is IConfigurationSection)) { throw new ArgumentException("config must be an IConfigurationSection"); } if (!(registry is ITemplatingItemsCollection)) { throw new ArgumentException("registry must be ITemplatingItemsCollection"); } ITemplatingItemsCollection items = registry as ITemplatingItemsCollection; items.Clear(); IDictionary <string, IConfigurationElement> itemElements = (config as IConfigurationSection).Elements; for (int i = 0; i < itemsCount; i++) { item = new TemplatingItem(); Control hiddenReadOnly = ReflectionServices.FindControlEx(i.ToString() + "-readOnly", container); if (null != hiddenReadOnly) { bool isReadOnly = false; bool.TryParse(((HiddenField)hiddenReadOnly).Value, out isReadOnly); item.IsReadOnly = isReadOnly; } Control hiddenNew = ReflectionServices.FindControlEx(i.ToString() + "-new", container); if (null != hiddenNew) { bool isNew = false; bool.TryParse(((HiddenField)hiddenNew).Value, out isNew); item.IsNew = isNew; } Control hiddenCurrent = ReflectionServices.FindControlEx(i.ToString() + "-current", container); if (null != hiddenCurrent) { bool isCurrent = false; bool.TryParse(((HiddenField)hiddenCurrent).Value, out isCurrent); item.IsCurrent = isCurrent; } Control hiddenHasChanges = ReflectionServices.FindControlEx(i.ToString() + "-hasChanges", container); if (null != hiddenHasChanges) { bool hasChanges = false; bool.TryParse(((HiddenField)hiddenHasChanges).Value, out hasChanges); item.HasChanges = hasChanges; } Control hiddenIsValid = ReflectionServices.FindControlEx(i.ToString() + "-isValid", container); if (null != hiddenIsValid) { bool isValid = false; bool.TryParse(((HiddenField)hiddenIsValid).Value, out isValid); item.IsValid = isValid; } Control hiddenInvalidMember = ReflectionServices.FindControlEx(i.ToString() + "-invalidMember", container); if (null != hiddenInvalidMember) { item.InvalidMember = ((HiddenField)hiddenInvalidMember).Value; } this.PopulateItem(container, config, item, i.ToString()); items.Add(item); } }
public virtual void ExtractItems(IConfigurationType config, int itemsCount, ITemplatingItemsCollection items) { ItemTemplate.Instance.Extract(_container, config, null, null, items, null, -1, itemsCount, this.manager); }
public virtual void ExtractFilter(IConfigurationType config, ITemplatingItemsCollection filters) { FiltersTemplate.Instance.Extract(_container, config, filters, this.manager); }