/// <summary> /// Called by the ASP.NET page framework to notify server controls that use composition-based implementation to create any child controls they contain in preparation for posting back or rendering. /// </summary> protected override void CreateChildControls() { base.CreateChildControls(); Controls.Clear(); RockControlHelper.CreateChildControls( this, Controls ); _tbStreet1 = new TextBox(); Controls.Add( _tbStreet1 ); _tbStreet1.ID = "tbStreet1"; _tbStreet1.CssClass = "form-control"; this.RequiredFieldValidator.ControlToValidate = _tbStreet1.ID; _tbStreet2 = new TextBox(); Controls.Add( _tbStreet2 ); _tbStreet2.ID = "tbStreet2"; _tbStreet2.CssClass = "form-control"; _tbCity = new TextBox(); Controls.Add( _tbCity ); _tbCity.ID = "tbCity"; _tbCity.CssClass = "form-control"; _tbCounty = new TextBox(); Controls.Add( _tbCounty ); _tbCounty.ID = "tbCounty"; _tbCounty.CssClass = "form-control"; _tbState = new TextBox(); Controls.Add( _tbState ); _tbState.ID = "tbState"; _tbState.CssClass = "form-control"; _ddlState = new DropDownList(); Controls.Add( _ddlState ); _ddlState.ID = "ddlState"; _ddlState.DataValueField = "Id"; _ddlState.CssClass = "form-control"; _tbPostalCode = new TextBox(); Controls.Add( _tbPostalCode ); _tbPostalCode.ID = "tbPostalCode"; _tbPostalCode.CssClass = "form-control"; _ddlCountry = new DropDownList(); Controls.Add( _ddlCountry ); _ddlCountry.ID = "ddlCountry"; _ddlCountry.DataValueField = "Id"; _ddlCountry.AutoPostBack = true; _ddlCountry.SelectedIndexChanged += _ddlCountry_SelectedIndexChanged; _ddlCountry.CssClass = "form-control"; string defaultCountry = GetDefaultCountry(); string defaultState = GetDefaultState(); BindCountries(); _ddlCountry.SetValue( defaultCountry ); BindStates( defaultCountry ); _ddlState.SetValue( defaultState ); _tbState.Text = defaultState; }