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

来源:互联网 发布:知乎 暴戾 编辑:程序博客网 时间:2024/05/20 10:21

本次,我们主要来自定义一个用户创建的向导步骤。在上一个实验中,我们创建了一个 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 中)



阅读全文
0 0
原创粉丝点击