我利用CreateUserWizard 成功建了一个用户注册页. 现在想加一个让用户选择将"用户名和邮件名指定为相同"的选项。当用户点 CheckBox1时将UserName的TextBox 填充 为已经输入的邮件名。奇怪的是:页面上的Textbox : UserName和 Email命名是绝对没有错。为什么会再后台CS里面找这个名称呢?编译器错误信息: CS0103: 当前上下文中不存在名称"UserName"源错误:行 18:     protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
行 19:     {
行 20:         UserName.Text = Email.Text;
行 21:     }
行 22: }

解决方案 »

  1.   

    把checkbox 的属性AutoPackBack 设定为true
      

  2.   

    CreateUserWizard1.Username=CreateUserWizard1.Email
    是不是这样
      

  3.   

    还真是这样可以解决:
    CreateUserWizard1.Username=CreateUserWizard1.Email为什么? 平时都是用xxx.Text 的呀. 我即使用CreateUserWizard1.UserName.Text 都不行的. 还有,我用VS 自带的LOGIN控件登陆后,生成的 SESSION 是什么: 好象用UserName 作为不 Session 不对.
      

  4.   

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"
            EmptyDataText="没有可显示的数据记录。">
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ASPNETDBConnectionString1 %>"
            ProviderName="<%$ ConnectionStrings:ASPNETDBConnectionString1.ProviderName %>"
            SelectCommand="SELECT [UserId], [MobilePIN], [Email], [LoweredEmail], [PasswordQuestion], [PasswordAnswer], [LastLoginDate] FROM [vw_aspnet_MembershipUsers] WHERE ([UserName] = @UserName)">
            <SelectParameters>
                <asp:SessionParameter Name="UserName" SessionField="UserName" Type="Object" />
            </SelectParameters>
        </asp:SqlDataSource>其中数据库是系统自动生成的:aspnetdb, 表是:aspnet_MembershipUsers