phunehehe
phunehehe

Reputation: 8778

why can't asp.net find my textbox?

I'm trying to add more fields to the CreateUserWizardStep, here is what I added:

<asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">
    <ContentTemplate>
        <table border="0">
            <tr>
                <td align="right">
                    <asp:Label ID="NickNameLabel" runat="server" AssociatedControlID="NickName">Nick Name:</asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="NickName" runat="server"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="NickName"
                        ErrorMessage="Nick Name is required." ToolTip="Nick Name is required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
                </td>
            </tr>
            <%-- The default code is left unchanged, but not shown here --%>
        </table>
    </ContentTemplate>
</asp:CreateUserWizardStep>

Then I tried to reference the objects like this

protected void NewUserWizard_CreatedUser(object sender, EventArgs e)
{
    CreateUserWizardStep step = NewUserWizard.FindControl("CreateUserWizardStep1") as CreateUserWizardStep;
    TextBox nickName = step.FindControl("NickName") as TextBox;
    // insert additional information to the database
}

The problem is, I'm getting nulls for nickName. Am I using FindControl("") incorrectly?

Upvotes: 2

Views: 1166

Answers (3)

Doobi
Doobi

Reputation: 4822

I don't know the control myself, but doesn't CreateUserWizardStep1.NickNameLabel work?

Upvotes: 0

ChrisF
ChrisF

Reputation: 137188

FindControl only

Searches the current naming container for the specified server control.

i.e. It only checks the current containers direct children.

You can use the Controls property to return all the children of step:

ControlCollection children = step.Controls;

and enumerate over this looking for your text box.

Upvotes: 2

derek
derek

Reputation: 4886

you may want to use a recursive find control function such as here: http://stevesmithblog.com/blog/recursive-findcontrol/

Upvotes: 3

Related Questions