textbox无法从findControl中获取文本属性

时间:2012-11-25 12:50:15

标签: c# asp.net textbox

我在ASP中使用CreateUserWizardControl,并希望将注册表单中的一些数据写入我自己的表格中。我想在创建用户时这样做。

当我调试时,这个问题似乎就是在这行中我在行中声明的文本框没有获取UserName文本框。它找到了一些东西,因为它不是null,但是t的text-property是一个空字符串:

t = (TextBox)(this.CreateUserWizard1.FindControl("UserName"));

在下一行引发异常:"对象引用未设置为对象的实例。"

o.organisation_name = t.Text;

以下是我的完整代码文件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;

public partial class registreer : System.Web.UI.Page
{

protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
{
    try
    {
        BLLorganisation BLLo = new BLLorganisation();
        Organisation o = new Organisation();
        TextBox t = new TextBox();
        t = (TextBox)(this.CreateUserWizard1.FindControl("UserName"));
        o.organisation_name = t.Text;
        o.fk_user_id = (Guid)(Membership.GetUser(CreateUserWizard1.UserName).ProviderUserKey);
        BLLo.insertOneOrganisation(o);
    }
    catch (Exception ex)
    {
        feedback.InnerHtml = ex.Message;
        feedback.Style.Add("display", "block");
    }
}
}

这是我对标记的控制:

<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" 
            oncreateduser="CreateUserWizard1_CreatedUser">
            <WizardSteps>
                <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server" 
                    Title="Registreer uw organisatie">
                    <ContentTemplate>
                        <table>
                            <tr>
                                <td align="center" colspan="2">
                                    <h1>Registreer uw organisatie</h1></td>
                            </tr>
                            <tr>
                                <td align="right">
                                    <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">Naam van de organisatie:</asp:Label>
                                </td>
                                <td>
                                    <asp:TextBox ID="UserName" runat="server"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" 
                                        ControlToValidate="UserName" ErrorMessage="Vul de naam van uw organisatie in." 
                                        ToolTip="Vul de naam van uw organisatie in." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
                                </td>
                            </tr>

有没有人知道出了什么问题?如果您需要查看更多代码,请告诉我们!

1 个答案:

答案 0 :(得分:0)

TextBox t = (TextBox)  CreateUserWizard1.ContentTemplateContainer.FindControl("UserName");
if(t!=null)
   o.organisation_name = t.Text;