using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; /// /// A field generator which creates dynamic gridview columns. /// public class ColGen : IAutoFieldGenerator { string[] languages; /// /// Initializes a new to generate columns for the specified languages. /// /// The languages for which to generate columns. public ColGen(string[] languages) { this.languages = languages; } #region IAutoFieldGenerator Members System.Collections.ICollection IAutoFieldGenerator.GenerateFields(Control control) { List fields = new List(); foreach(string lang in languages) { TemplateField fld = new TemplateField(); fld.SortExpression = lang; try { fld.HeaderText = System.Globalization.CultureInfo.GetCultureInfoByIetfLanguageTag(lang).EnglishName + "
(" + lang + ")"; } catch { fld.HeaderText = lang; } fld.ItemTemplate = new GridViewTemplate(ListItemType.Item, lang); fld.FooterTemplate = new GridViewTemplate(ListItemType.Footer, lang); fld.ItemStyle.CssClass = "ssCell"; fields.Add(fld); } return fields; } #endregion }