/// <summary> /// Atribui a propriedade MaxLength de todos os <see cref="TextBox"/>es da página. /// </summary> /// <param name="mdCache">O objeto <see cref="DbMetadataCache"/> utilizado para buscar as informações sobre as tabelas</param> /// <param name="tableName">O nome da tabela</param> public static void SetMaxLengthOnTextBoxes(DbMetadataCache mdCache, string tableName) { SetMaxLengthOnTextBoxes(Page, mdCache, tableName); }
/// <summary> /// Atribui a propriedade MaxLength de todos os <see cref="TextBox"/>es filhos de um controle. /// </summary> /// <param name="parent">O controle a partir de onde serão atribuidas as propriedades <c>MaxLength</c>.</param> /// <param name="mdCache">O objeto <see cref="DbMetadataCache"/> utilizado para buscar as informações sobre as tabelas</param> /// <param name="tableName">O nome da tabela</param> public static void SetMaxLengthOnTextBoxes(Control parent, DbMetadataCache mdCache, string tableName) { SetMaxLengthOnTextBoxes(parent, null, mdCache, tableName); }
/// <summary> /// Atribui a propriedade MaxLength de todos os <see cref="TextBox"/>es filhos de um controle. /// </summary> /// <param name="parent">O controle a partir de onde serão atribuidas as propriedades <c>MaxLength</c>.</param> /// <param name="connector">O <see cref="IConnector"/></param> /// <param name="mdCache">O objeto <see cref="DbMetadataCache"/> utilizado para buscar as informações sobre as tabelas</param> /// <param name="defaultTableName">O nome da tabela</param> public static void SetMaxLengthOnTextBoxes(Control parent, IConnector connector, DbMetadataCache mdCache, string defaultTableName) { var rx = new Regex(@"(?<t>[^.]+)\.(?<f>[^.]+)", RegexOptions.ExplicitCapture | RegexOptions.Compiled); Match m; if (connector != null) defaultTableName = connector.GetPhysicalTableName(defaultTableName); foreach (TextBox txt in SelectControls(parent, new TypeCondition(typeof(TextBox)))) if (txt.Enabled && !txt.ReadOnly && txt.ID != null && txt.ID.Length > 3) { var dbRelated = txt as IDatabaseFieldRelated; if (dbRelated != null && dbRelated.DatabaseField != null && (m = rx.Match(dbRelated.DatabaseField)).Success) { string table = m.Groups["t"].Value; string field = m.Groups["f"].Value; if (connector != null) table = connector.GetPhysicalTableName(table); txt.MaxLength = mdCache.MaxLength(table, field); continue; } txt.MaxLength = mdCache.MaxLength(defaultTableName, txt.ID.Substring(3)); } }
/// <summary> /// Garante que o <see cref="mdCache"/> estará criado. /// </summary> /// <param name="t"> /// O tipo, para criação do /// <see cref="NHibernateDbConnectionFactory"/>. /// </param> private static void EnsureMetadataCache(Type t) { if (mdCache == null) lock (staticSync) { NHibernateDbConnectionFactory factory = new NHibernateDbConnectionFactory(ActiveRecordMediator.GetSessionFactoryHolder().GetSessionFactory(t)); mdCache = new DbMetadataCache(factory); } }