private void WritePasswordPanel(HtmlTextWriter writer, CreateUserWizard wizard) { TextBox textBox = wizard.FindControl("CreateUserStepContainer").FindControl("Password") as TextBox; if (textBox != null) { Page.ClientScript.RegisterForEventValidation(textBox.UniqueID); WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-CreateUserWizard-PasswordPanel", ""); Extender.WriteTextBox(writer, true, wizard.LabelStyle.CssClass, wizard.PasswordLabelText, wizard.TextBoxStyle.CssClass, "CreateUserStepContainer_Password", ""); WebControlAdapterExtender.WriteRequiredFieldValidator(writer, wizard.FindControl("CreateUserStepContainer").FindControl("PasswordRequired") as RequiredFieldValidator, wizard.ValidatorTextStyle.CssClass, "Password", wizard.PasswordRequiredErrorMessage); WebControlAdapterExtender.WriteEndDiv(writer); } }
private void WriteUserPanel(HtmlTextWriter writer, ChangePassword changePwd) { if (changePwd.DisplayUserName) { TextBox textbox = changePwd.ChangePasswordTemplateContainer.FindControl("UserName") as TextBox; if (textbox != null) { Page.ClientScript.RegisterForEventValidation(textbox.UniqueID); WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-ChangePassword-UserPanel"); Extender.WriteTextBox(writer, false, changePwd.LabelStyle.CssClass, changePwd.UserNameLabelText, changePwd.TextBoxStyle.CssClass, changePwd.ChangePasswordTemplateContainer.ID + "_UserName", changePwd.UserName); WebControlAdapterExtender.WriteRequiredFieldValidator(writer, changePwd.ChangePasswordTemplateContainer.FindControl("UserNameRequired") as RequiredFieldValidator, changePwd.ValidatorTextStyle.CssClass, "UserName", changePwd.UserNameRequiredErrorMessage); WebControlAdapterExtender.WriteEndDiv(writer); } } }
/// <summary> /// Writes the submit panel. /// </summary> /// <param name="writer"> /// The writer. /// </param> /// <param name="changePwd"> /// The change PWD. /// </param> /// <remarks> /// </remarks> private void WriteSubmitPanel(HtmlTextWriter writer, ChangePassword changePwd) { WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-ChangePassword-SubmitPanel", string.Empty); var id = "ChangePassword"; id += (changePwd.ChangePasswordButtonType == ButtonType.Button) ? "Push" : string.Empty; var idWithType = WebControlAdapterExtender.MakeIdWithButtonType(id, changePwd.ChangePasswordButtonType); var btn = changePwd.ChangePasswordTemplateContainer.FindControl(idWithType); if (btn != null) { this.Page.ClientScript.RegisterForEventValidation(btn.UniqueID); var options = new PostBackOptions( btn, string.Empty, string.Empty, false, false, false, true, true, changePwd.UniqueID); var javascript = "javascript:" + this.Page.ClientScript.GetPostBackEventReference(options); javascript = this.Page.Server.HtmlEncode(javascript); this.Extender.WriteSubmit( writer, changePwd.ChangePasswordButtonType, changePwd.ChangePasswordButtonStyle.CssClass, changePwd.ChangePasswordTemplateContainer.ID + "_" + id, changePwd.ChangePasswordButtonImageUrl, javascript, changePwd.ChangePasswordButtonText); } id = "Cancel"; id += (changePwd.ChangePasswordButtonType == ButtonType.Button) ? "Push" : string.Empty; idWithType = WebControlAdapterExtender.MakeIdWithButtonType(id, changePwd.CancelButtonType); btn = changePwd.ChangePasswordTemplateContainer.FindControl(idWithType); if (btn != null) { this.Page.ClientScript.RegisterForEventValidation(btn.UniqueID); this.Extender.WriteSubmit( writer, changePwd.CancelButtonType, changePwd.CancelButtonStyle.CssClass, changePwd.ChangePasswordTemplateContainer.ID + "_" + id, changePwd.CancelButtonImageUrl, string.Empty, changePwd.CancelButtonText); } WebControlAdapterExtender.WriteEndDiv(writer); }
/// <summary> /// Writes the help panel. /// </summary> /// <param name="writer"> /// The writer. /// </param> /// <param name="passwordRecovery"> /// The password recovery. /// </param> /// <remarks> /// </remarks> private static void WriteHelpPanel(HtmlTextWriter writer, PasswordRecovery passwordRecovery) { if ((!String.IsNullOrEmpty(passwordRecovery.HelpPageIconUrl)) || (!String.IsNullOrEmpty(passwordRecovery.HelpPageText))) { WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-PasswordRecovery-HelpPanel", string.Empty); WebControlAdapterExtender.WriteImage(writer, passwordRecovery.HelpPageIconUrl, "Help"); WebControlAdapterExtender.WriteLink( writer, passwordRecovery.HyperLinkStyle.CssClass, passwordRecovery.HelpPageUrl, "Help", passwordRecovery.HelpPageText); WebControlAdapterExtender.WriteEndDiv(writer); } }
///////////////////////////////////////////////////////// // Step 3: success ///////////////////////////////////////////////////////// /// <summary> /// Writes the success text panel. /// </summary> /// <param name="writer"> /// The writer. /// </param> /// <param name="passwordRecovery"> /// The password recovery. /// </param> /// <remarks> /// </remarks> private static void WriteSuccessTextPanel(HtmlTextWriter writer, PasswordRecovery passwordRecovery) { if (String.IsNullOrEmpty(passwordRecovery.SuccessText)) { return; } var className = (!String.IsNullOrEmpty(passwordRecovery.SuccessTextStyle.CssClass)) ? passwordRecovery.SuccessTextStyle.CssClass + " " : string.Empty; className += "AspNet-PasswordRecovery-SuccessTextPanel"; WebControlAdapterExtender.WriteBeginDiv(writer, className, string.Empty); WebControlAdapterExtender.WriteSpan(writer, string.Empty, passwordRecovery.SuccessText); WebControlAdapterExtender.WriteEndDiv(writer); }
/// <summary> /// Writes the instruction panel. /// </summary> /// <param name="writer"> /// The writer. /// </param> /// <param name="login"> /// The login. /// </param> /// <remarks> /// </remarks> private static void WriteInstructionPanel(HtmlTextWriter writer, Login login) { if (String.IsNullOrEmpty(login.InstructionText)) { return; } var className = (!String.IsNullOrEmpty(login.InstructionTextStyle.CssClass)) ? login.InstructionTextStyle.CssClass + " " : string.Empty; className += "AspNet-Login-InstructionPanel"; WebControlAdapterExtender.WriteBeginDiv(writer, className, string.Empty); WebControlAdapterExtender.WriteSpan(writer, string.Empty, login.InstructionText); WebControlAdapterExtender.WriteEndDiv(writer); }
/// <summary> /// Writes the password recovery panel. /// </summary> /// <param name="writer"> /// The writer. /// </param> /// <param name="login"> /// The login. /// </param> /// <remarks> /// </remarks> private static void WritePasswordRecoveryPanel(HtmlTextWriter writer, Login login) { if ((!String.IsNullOrEmpty(login.PasswordRecoveryUrl)) || (!String.IsNullOrEmpty(login.PasswordRecoveryText))) { WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-Login-PasswordRecoveryPanel", string.Empty); WebControlAdapterExtender.WriteImage(writer, login.PasswordRecoveryIconUrl, "Password recovery"); WebControlAdapterExtender.WriteLink( writer, login.HyperLinkStyle.CssClass, login.PasswordRecoveryUrl, "Password recovery", login.PasswordRecoveryText); WebControlAdapterExtender.WriteEndDiv(writer); } }
///////////////////////////////////////////////////////// // Complete step ///////////////////////////////////////////////////////// /// <summary> /// Writes the success text panel. /// </summary> /// <param name="writer"> /// The writer. /// </param> /// <param name="wizard"> /// The wizard. /// </param> /// <remarks> /// </remarks> private static void WriteSuccessTextPanel(HtmlTextWriter writer, CreateUserWizard wizard) { if (String.IsNullOrEmpty(wizard.CompleteSuccessText)) { return; } var className = (!String.IsNullOrEmpty(wizard.CompleteSuccessTextStyle.CssClass)) ? wizard.CompleteSuccessTextStyle.CssClass + " " : string.Empty; className += "AspNet-CreateUserWizard-SuccessTextPanel"; WebControlAdapterExtender.WriteBeginDiv(writer, className, string.Empty); WebControlAdapterExtender.WriteSpan(writer, string.Empty, wizard.CompleteSuccessText); WebControlAdapterExtender.WriteEndDiv(writer); }
/// <summary> /// Writes the remember me panel. /// </summary> /// <param name="writer"> /// The writer. /// </param> /// <param name="login"> /// The login. /// </param> /// <remarks> /// </remarks> private void WriteRememberMePanel(HtmlTextWriter writer, Login login) { if (login.DisplayRememberMe) { this.Page.ClientScript.RegisterForEventValidation(login.FindControl("RememberMe").UniqueID); WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-Login-RememberMePanel", string.Empty); this.Extender.WriteCheckBox( writer, login.LabelStyle.CssClass, login.RememberMeText, login.CheckBoxStyle.CssClass, "RememberMe", login.RememberMeSet); WebControlAdapterExtender.WriteEndDiv(writer); } }
/// <summary> /// Writes the success title panel. /// </summary> /// <param name="writer"> /// The writer. /// </param> /// <param name="changePwd"> /// The change PWD. /// </param> /// <remarks> /// </remarks> private static void WriteSuccessTitlePanel(HtmlTextWriter writer, ChangePassword changePwd) { if (String.IsNullOrEmpty(changePwd.SuccessTitleText)) { return; } var className = (!String.IsNullOrEmpty(changePwd.TitleTextStyle.CssClass)) ? changePwd.TitleTextStyle.CssClass + " " : string.Empty; className += "AspNet-ChangePassword-SuccessTitlePanel"; WebControlAdapterExtender.WriteBeginDiv(writer, className, string.Empty); WebControlAdapterExtender.WriteSpan(writer, string.Empty, changePwd.SuccessTitleText); WebControlAdapterExtender.WriteEndDiv(writer); }
///////////////////////////////////////////////////////// // Step 1: user name ///////////////////////////////////////////////////////// /// <summary> /// Writes the failure panel. /// </summary> /// <param name="writer"> /// The writer. /// </param> /// <param name="passwordRecovery"> /// The password recovery. /// </param> /// <remarks> /// </remarks> private void WriteFailurePanel(HtmlTextWriter writer, PasswordRecovery passwordRecovery) { if (String.IsNullOrEmpty(this.currentErrorText)) { return; } var className = (!String.IsNullOrEmpty(passwordRecovery.FailureTextStyle.CssClass)) ? passwordRecovery.FailureTextStyle.CssClass + " " : string.Empty; className += "AspNet-PasswordRecovery-FailurePanel"; WebControlAdapterExtender.WriteBeginDiv(writer, className, string.Empty); WebControlAdapterExtender.WriteSpan(writer, string.Empty, this.currentErrorText); WebControlAdapterExtender.WriteEndDiv(writer); }
private void WriteAnswerPanel(HtmlTextWriter writer, CreateUserWizard wizard) { if ((WizardMembershipProvider != null) && WizardMembershipProvider.RequiresQuestionAndAnswer) { TextBox textBox = wizard.FindControl("CreateUserStepContainer").FindControl("Answer") as TextBox; if (textBox != null) { Page.ClientScript.RegisterForEventValidation(textBox.UniqueID); WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-CreateUserWizard-AnswerPanel"); Extender.WriteTextBox(writer, false, wizard.LabelStyle.CssClass, wizard.AnswerLabelText, wizard.TextBoxStyle.CssClass, "CreateUserStepContainer_Answer", ""); WebControlAdapterExtender.WriteRequiredFieldValidator(writer, wizard.FindControl("CreateUserStepContainer").FindControl("AnswerRequired") as RequiredFieldValidator, wizard.ValidatorTextStyle.CssClass, "Answer", wizard.AnswerRequiredErrorMessage); WebControlAdapterExtender.WriteEndDiv(writer); } } }
private void WriteAnswerPanel(HtmlTextWriter writer, PasswordRecovery passwordRecovery) { Control container = passwordRecovery.QuestionTemplateContainer; TextBox textBox = (container != null) ? container.FindControl("Answer") as TextBox : null; RequiredFieldValidator rfv = (textBox != null) ? container.FindControl("AnswerRequired") as RequiredFieldValidator : null; string id = (rfv != null) ? container.ID + "_" + textBox.ID : ""; if (!String.IsNullOrEmpty(id)) { Page.ClientScript.RegisterForEventValidation(textBox.UniqueID); WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-PasswordRecovery-AnswerPanel"); Extender.WriteTextBox(writer, false, passwordRecovery.LabelStyle.CssClass, passwordRecovery.AnswerLabelText, passwordRecovery.TextBoxStyle.CssClass, id, ""); WebControlAdapterExtender.WriteRequiredFieldValidator(writer, rfv, passwordRecovery.ValidatorTextStyle.CssClass, "Answer", passwordRecovery.AnswerRequiredErrorMessage); WebControlAdapterExtender.WriteEndDiv(writer); } }
/// <summary> /// Writes the create user panel. /// </summary> /// <param name="writer"> /// The writer. /// </param> /// <param name="changePwd"> /// The change PWD. /// </param> /// <remarks> /// </remarks> private static void WriteCreateUserPanel(HtmlTextWriter writer, ChangePassword changePwd) { if (String.IsNullOrEmpty(changePwd.CreateUserUrl) && String.IsNullOrEmpty(changePwd.CreateUserText)) { return; } WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-ChangePassword-CreateUserPanel", string.Empty); WebControlAdapterExtender.WriteImage(writer, changePwd.CreateUserIconUrl, "Create user"); WebControlAdapterExtender.WriteLink( writer, changePwd.HyperLinkStyle.CssClass, changePwd.CreateUserUrl, "Create user", changePwd.CreateUserText); WebControlAdapterExtender.WriteEndDiv(writer); }
/// <summary> /// Writes the user panel. /// </summary> /// <param name="writer"> /// The writer. /// </param> /// <param name="passwordRecovery"> /// The password recovery. /// </param> /// <remarks> /// </remarks> private void WriteUserPanel(HtmlTextWriter writer, PasswordRecovery passwordRecovery) { if ((this.state == State.UserName) || (this.state == State.UserLookupError)) { var container = passwordRecovery.UserNameTemplateContainer; var textBox = (container != null) ? container.FindControl("UserName") as TextBox : null; var rfv = (textBox != null) ? container.FindControl("UserNameRequired") as RequiredFieldValidator : null; var id = (rfv != null) ? container.ID + "_" + textBox.ID : string.Empty; if (!String.IsNullOrEmpty(id)) { if (textBox != null) { this.Page.ClientScript.RegisterForEventValidation(textBox.UniqueID); } WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-PasswordRecovery-UserName-UserPanel", string.Empty); this.Extender.WriteTextBox( writer, false, passwordRecovery.LabelStyle.CssClass, passwordRecovery.UserNameLabelText, passwordRecovery.TextBoxStyle.CssClass, id, passwordRecovery.UserName); WebControlAdapterExtender.WriteRequiredFieldValidator( writer, rfv, passwordRecovery.ValidatorTextStyle.CssClass, "UserName", passwordRecovery.UserNameRequiredErrorMessage); WebControlAdapterExtender.WriteEndDiv(writer); } } else if ((this.state == State.Question) || (this.state == State.AnswerLookupError)) { WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-PasswordRecovery-Question-UserPanel", string.Empty); this.Extender.WriteReadOnlyTextBox( writer, passwordRecovery.LabelStyle.CssClass, passwordRecovery.UserNameLabelText, passwordRecovery.TextBoxStyle.CssClass, passwordRecovery.UserName); WebControlAdapterExtender.WriteEndDiv(writer); } }
private void WriteContinuePanel(HtmlTextWriter writer, ChangePassword changePwd) { WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-ChangePassword-ContinuePanel"); string id = "Continue"; id += (changePwd.ChangePasswordButtonType == ButtonType.Button) ? "Push" : ""; string idWithType = WebControlAdapterExtender.MakeIdWithButtonType(id, changePwd.ContinueButtonType); Control btn = changePwd.SuccessTemplateContainer.FindControl(idWithType); if (btn != null) { Page.ClientScript.RegisterForEventValidation(btn.UniqueID); Extender.WriteSubmit(writer, changePwd.ContinueButtonType, changePwd.ContinueButtonStyle.CssClass, changePwd.SuccessTemplateContainer.ID + "_" + id, changePwd.ContinueButtonImageUrl, "", changePwd.ContinueButtonText); } WebControlAdapterExtender.WriteEndDiv(writer); }
/// <summary> /// Writes the password recovery panel. /// </summary> /// <param name="writer"> /// The writer. /// </param> /// <param name="changePwd"> /// The change PWD. /// </param> /// <remarks> /// </remarks> private static void WritePasswordRecoveryPanel(HtmlTextWriter writer, ChangePassword changePwd) { if (String.IsNullOrEmpty(changePwd.PasswordRecoveryUrl) && String.IsNullOrEmpty(changePwd.PasswordRecoveryText)) { return; } WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-ChangePassword-PasswordRecoveryPanel", string.Empty); WebControlAdapterExtender.WriteImage(writer, changePwd.PasswordRecoveryIconUrl, "Password recovery"); WebControlAdapterExtender.WriteLink( writer, changePwd.HyperLinkStyle.CssClass, changePwd.PasswordRecoveryUrl, "Password recovery", changePwd.PasswordRecoveryText); WebControlAdapterExtender.WriteEndDiv(writer); }
private void WriteSubmitPanel(HtmlTextWriter writer, PasswordRecovery passwordRecovery) { if ((_state == State.UserName) || (_state == State.UserLookupError)) { Control container = passwordRecovery.UserNameTemplateContainer; string id = (container != null) ? container.ID + "_Submit" : "Submit"; string idWithType = WebControlAdapterExtender.MakeIdWithButtonType("Submit", passwordRecovery.SubmitButtonType); Control btn = (container != null) ? container.FindControl(idWithType) as Control : null; if (btn != null) { Page.ClientScript.RegisterForEventValidation(btn.UniqueID); PostBackOptions options = new PostBackOptions(btn, "", "", false, false, false, false, true, passwordRecovery.UniqueID); string javascript = "javascript:" + Page.ClientScript.GetPostBackEventReference(options); javascript = Page.Server.HtmlEncode(javascript); WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-PasswordRecovery-UserName-SubmitPanel"); Extender.WriteSubmit(writer, passwordRecovery.SubmitButtonType, passwordRecovery.SubmitButtonStyle.CssClass, id, passwordRecovery.SubmitButtonImageUrl, javascript, passwordRecovery.SubmitButtonText); WebControlAdapterExtender.WriteEndDiv(writer); } } else if ((_state == State.Question) || (_state == State.AnswerLookupError)) { Control container = passwordRecovery.QuestionTemplateContainer; string id = (container != null) ? container.ID + "_Submit" : "Submit"; string idWithType = WebControlAdapterExtender.MakeIdWithButtonType("Submit", passwordRecovery.SubmitButtonType); Control btn = (container != null) ? container.FindControl(idWithType) as Control : null; if (btn != null) { Page.ClientScript.RegisterForEventValidation(btn.UniqueID); PostBackOptions options = new PostBackOptions(btn, "", "", false, false, false, false, true, passwordRecovery.UniqueID); string javascript = "javascript:" + Page.ClientScript.GetPostBackEventReference(options); javascript = Page.Server.HtmlEncode(javascript); WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-PasswordRecovery-Question-SubmitPanel"); Extender.WriteSubmit(writer, passwordRecovery.SubmitButtonType, passwordRecovery.SubmitButtonStyle.CssClass, id, passwordRecovery.SubmitButtonImageUrl, javascript, passwordRecovery.SubmitButtonText); WebControlAdapterExtender.WriteEndDiv(writer); } } }
/// <summary> /// Writes the user panel. /// </summary> /// <param name="writer"> /// The writer. /// </param> /// <param name="login"> /// The login. /// </param> /// <remarks> /// </remarks> private void WriteUserPanel(HtmlTextWriter writer, Login login) { this.Page.ClientScript.RegisterForEventValidation(login.FindControl("UserName").UniqueID); WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-Login-UserPanel", string.Empty); this.Extender.WriteTextBox( writer, false, login.LabelStyle.CssClass, login.UserNameLabelText, login.TextBoxStyle.CssClass, "UserName", login.UserName); WebControlAdapterExtender.WriteRequiredFieldValidator( writer, login.FindControl("UserNameRequired") as RequiredFieldValidator, login.ValidatorTextStyle.CssClass, "UserName", login.UserNameRequiredErrorMessage); WebControlAdapterExtender.WriteEndDiv(writer); }
private void WriteSubmitPanel(HtmlTextWriter writer, Login login) { string id = "Login"; string idWithType = WebControlAdapterExtender.MakeIdWithButtonType(id, login.LoginButtonType); Control btn = login.FindControl(idWithType); if (btn != null) { Page.ClientScript.RegisterForEventValidation(btn.UniqueID); WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-Login-SubmitPanel"); PostBackOptions options = new PostBackOptions(btn, "", "", false, false, false, false, true, login.UniqueID); string javascript = "javascript:" + Page.ClientScript.GetPostBackEventReference(options); javascript = Page.Server.HtmlEncode(javascript); Extender.WriteSubmit(writer, login.LoginButtonType, login.LoginButtonStyle.CssClass, id, login.LoginButtonImageUrl, javascript, login.LoginButtonText); WebControlAdapterExtender.WriteEndDiv(writer); } }
/// <summary> /// Writes the step title panel. /// </summary> /// <param name="writer"> /// The writer. /// </param> /// <param name="wizard"> /// The wizard. /// </param> /// <remarks> /// </remarks> private static void WriteStepTitlePanel(HtmlTextWriter writer, CreateUserWizard wizard) { if (wizard.ActiveStep == null) { return; } if (String.IsNullOrEmpty(wizard.ActiveStep.Title)) { return; } var className = (!String.IsNullOrEmpty(wizard.TitleTextStyle.CssClass)) ? wizard.TitleTextStyle.CssClass + " " : string.Empty; className += "AspNet-CreateUserWizard-StepTitlePanel"; WebControlAdapterExtender.WriteBeginDiv(writer, className, string.Empty); WebControlAdapterExtender.WriteSpan(writer, string.Empty, wizard.ActiveStep.Title); WebControlAdapterExtender.WriteEndDiv(writer); }
/// <summary> /// Writes the continue panel. /// </summary> /// <param name="writer"> /// The writer. /// </param> /// <param name="wizard"> /// The wizard. /// </param> /// <remarks> /// </remarks> private void WriteContinuePanel(HtmlTextWriter writer, CreateUserWizard wizard) { const string Id = "ContinueButton"; var idWithType = WebControlAdapterExtender.MakeIdWithButtonType(Id, wizard.ContinueButtonType); var btn = wizard.FindControl("CompleteStepContainer").FindControl(idWithType); if (btn == null) { return; } this.Page.ClientScript.RegisterForEventValidation(btn.UniqueID); WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-CreateUserWizard-ContinuePanel", string.Empty); this.Extender.WriteSubmit( writer, wizard.ContinueButtonType, wizard.ContinueButtonStyle.CssClass, "CompleteStepContainer_ContinueButton", wizard.ContinueButtonImageUrl, string.Empty, wizard.ContinueButtonText); WebControlAdapterExtender.WriteEndDiv(writer); }
///////////////////////////////////////////////////////// // Step 2: question ///////////////////////////////////////////////////////// private void WriteQuestionPanel(HtmlTextWriter writer, PasswordRecovery passwordRecovery) { WebControlAdapterExtender.WriteBeginDiv(writer, "AspNet-PasswordRecovery-QuestionPanel"); Extender.WriteReadOnlyTextBox(writer, passwordRecovery.LabelStyle.CssClass, passwordRecovery.QuestionLabelText, passwordRecovery.TextBoxStyle.CssClass, passwordRecovery.Question); WebControlAdapterExtender.WriteEndDiv(writer); }