ASP.NET4.0  创建用户控件
在Visual Studio 2010中创建用户控件,就像创建Web页面中创建控件一样,其操作方法比较简单,并且一旦创建成功之后,就可以在多个ASP.NET页面中重复使用。
1.创建用户控件文件
首先,在已经创建好的Web项目中,右击目录结构,并执行【添加】|【新建项】命令,如图8-1所示。
图8-1  添加Web项
然后,在弹出的【添加新项】窗口中,选择左侧列表栏中的【Visual C#项】选项,并在中间的列表栏中,选择【用户控件】选项,如图8-2所示。
图8-2  选择用户控件
最后,在【名称】文本框中,更改用户控件的名称,如更改为Userlogin.cs,并单击【添加】按钮。
当用户在【添加新项】的中间栏中,选择某个选项时,则在右侧栏中显示该选项的相关介绍。
2.用户控件添加内容
当用户创建用户控件之后,会生成一个.ascx文件。而.ascx页面结构与.aspx页面基本相同。用户可以在【解决方案管理器】中可以展开.aspx文件和.ascx文件进行对比,其结构并没有太大的变化,如图8-3所示。
图8-3  用户控件结构
用户控件中并没有“<html><body>”等标记,因为.ascx页面作为控件被引用到其他页面,引用的页面(如.aspx页面)其中已经包含<body><html>等标记。如果用户控件中使用这样的标记,可能会造成页面布局混乱。
在【解决方案资源管理器】中,双击.ascx文件,并在【工作区】中显示该文件。然后,在【设计】模式中,可以添加Label、TextBox和Button等控件,并设计用户登录内容,如图8-4所示。
图8-4  设计用户登录界面
用户也可以在【源】模式中,查看源代码内容,代码如下:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserlogin.ascx.cs" Inherits="WebUserlogin" %>
<table>
    <tr>
        <td><asp:Label ID="Label1" runat="server" Text="用户名:"></asp:Label></td>
        <td><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td>
    </tr>
    <tr>
        <td><asp:Label ID="Label2" runat="server" Text="密  码:"></asp:Label></td>
        <td><asp:TextBox ID="TextBox2" runat="server"></asp:TextBox></td>
    </tr>
    <tr><td colspan="2" align="right"><asp:Button ID="button" runat="server" Text="确定" onclick="button_Click" /></td>
    </tr>
    <tr><td colspan="3" align="right"><asp:Label ID="Label3" runat="server" Text=""></asp:Label></td>
    </tr>
</table>
在该文件的第一行代码中,使用了@Control指令。而该指令在前面的章节中已经提到过。该指令与@Page指令基本相似,在.aspx文件中包含了@Page指令,而在.ascx文件中则不包含@Page指令,该文件中包含@Control指令。该指令只能用于用户控件(.ascx)中。每个.ascx文件只能包含一条@Control指令。
此外,对于每个@Control指令,只允许定义一个Language属性,因为每个控件只能使用一种语言。
3.添加类源代码
在所设计的界面中,双击【确定】按钮,并打开该文件的类代码文件(扩展名为.cs),并
自动创建button_Click( )方法。在该方法中,添加判断用户信息的代码。
public partial class WebUserlogin : System.Web.UI.UserControl
{
    Boolean user_check = false;                                        //定义布尔型变量
  String login_check = "yz1";                                        //定义字符串型变量
    protected void Page_Load(object sender, EventArgs e)                //从控件类派生
    {
    }
    protected void button_Click(object sender, EventArgs e)                //自动创建的事件
    {
        string username = TextBox1.Text;                      //变量,并获取用户名信息
        string ps = TextBox2.Text;                            //定义变量,并获取密码信息
        if (this.usercheck(username, ps))                        //调用方法,判断是否为空
        {
            Label3.Text = "用户名和密码不能为空";
        }
        else if (this.logincheck(username, ps)=="yz1")            //判断验证是不为初始化值
        {
            Label3.Text = "程序有误,无法验证!";
        }
        else if (this.logincheck(username, ps) == "yz2")          //判断用户名和密码是否正确
        {
            Label3.Text = "用户名和密码错误!";
asp 源代码
        }
        else if (this.logincheck(username, ps) == "yz3")        //用户名和密码正确后,显示信息
        {
            Label3.Text = "欢迎你登录系统!";
        }
       
    }
    private Boolean usercheck(string username,string ps)      //该方法判断用户名和密码是否为空
    {
        if (username == "" || ps == "" )
        {
            user_check = true;
        }
        return user_check;
    }
    private string logincheck(string username, string ps)    //该方法判断是用户名和密码是否正确
    {
        if(username!="admin" && ps!="admin")
        {
            login_check = "yz2";
        }
        else if (username == "admin" && ps == "admin")
        {
            login_check = "yz3";
        }
        return login_check;
    }
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。