(搬运).net起步 (自定义 ASP.NET CreateUserWizard 控件2)

本次,我们主要来自定义一个用户创建的向导步骤。在上一个实验中,我们创建了一个 CreateUserWizard 控件,该控件具有两个基本步骤(CreateUserStep 和CompleteStep),本实验我们在此基础上创建一个添加在 CreateUserStep 之前的附加向导步骤定义的模板。

添加向导步骤

① 打开上次实验网页,向 CreateUserWizard 控件的 <WizardSteps> 节添加 <asp:WizardStep> 元素。在您的自定义 CreateUserWizard 控件将使用的附加向导步骤中包括任何控件和标记。
例如,下面的代码示例演示要添加在 CreateUserWizard 控件(该控件包含供用户输入用户名的文本框控件)的 CreateUserStep 之前的步骤。将检查用户名以确保该名称在成员资格数据库中不存在。
<asp:WizardStep ID="CreateUserWizardStep0" runat="server">
                    <table border="0" style="font-size:100%;font-family:Verdana" id="TABLE2">
                        <tr>
                            <td align="center" colspan="2" style="font-weight:bold;color:white;background-color:#5d7b9d">
                                Select an Account Name
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <asp:Label ID="AccountNameLabel" runat="server" AssociatedControlID="SearchAccount">
                                    Account Name:
                                </asp:Label>
                                <asp:TextBox ID="SearchAccount" runat="server"></asp:TextBox><br />
                                <asp:Label ID="SearchAccountMessage" runat="server" ForeColor="Red"></asp:Label>
                            </td>
                        </tr>
                    </table>
</asp:WizardStep>
②添加向导步骤的代码。可以处理 Wizard 控件的 NextButtonClick 事件以执行您的代码。CurrentStepIndex 属性值通过步骤索引号(从代表第一个步骤的 0 开始)来指示哪个附加向导步骤引发了 NextButtonClick 事件。
下面的代码示例演示 NextButtonClick 事件的处理程序,该处理程序使用在前一个代码示例的向导步骤的 TextBox 控件中输入的用户名,并验证该用户名,以确保它不是空白的并且在成员资格数据库中不存在。您将需要向页上的 CreateUserWizard 控件添加一个 OnNextButtonClick 属性,该控件引用 NextButtonClick 事件的处理程序(例如 OnNextButtonClick="CreateUserWizard1_NextButtonClick"。)

选中左侧的 CreateUserWizard 控件,双击触发右侧属性面板中的 NextButtonClick 事件。
protected void CreateUserWizard1_NextButtonClick(object sender, WizardNavigationEventArgs e)
        {
            if(e.CurrentStepIndex==0)
            {
                if(SearchAccount.Text.Trim()==""||UserExists(SearchAccount.Text))
                {
                    SearchAccountMessage.Text = "That account already exists.Please select an different account name.";
                    e.Cancel = true;
                }
                else
                {
                    TextBox userName = (TextBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("UserName");
                    userName.Text = SearchAccount.Text;
                    SearchAccountMessage.Text = "";
                    e.Cancel = false;
                }
            }
        }

        private bool UserExists(string text)
        {
            if (Membership.GetUser(text) != null) { return true; }
            return false;
        }
注意:我们需要添加命名空间 using System.Web.Security;的引用。

PS

①Membership

Membership是ASP.NET为我们提供的一套验证和存储用户凭证的框架。它可以帮助我们快速的开发用户登录、管理以及权限验证相关的模块。
一般来讲我们的网站要实现的与用户相关的最基本功能包括:注册,登录,修改用户资料和密码。Membership为我们提供了以下几个类来帮助我们完成这些功能。

membership类


membership属性:


membership方法:




事件:


WizardNavigationEventArgs 属性

Cancel 属性

获取或设置一个值,指示是否应取消向导中到下一步的导航。

命名空间: System.Web.UI.WebControls
程序集: System.Web(在 system.web.dll 中)

CurrentStepIndex 属性

获取当前显示在  Wizard  控件中的  WizardStep  对象的索引。

命名空间: System.Web.UI.WebControls
程序集: System.Web(在 system.web.dll 中)

NextStepIndex 属性

获取一个值,该值表示 Wizard 控件要显示的下一个 WizardStep 对象的索引。
命名空间: System.Web.UI.WebControls
程序集: System.Web(在 system.web.dll 中)



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值