利用委托实现简单的注册(只是写入到文本当中没有连数据库)

来源:互联网 发布:寝室厨具知乎 编辑:程序博客网 时间:2024/06/04 08:13

在项目中添加Web窗体和web用户控件。

Web用户控件前台:


代码;(ps:都只是验证的不为空,密码一致)

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyRegister.ascx.cs"
    Inherits="委托的简单应用.MyRegister" %>
<script src="js/Jquery1.7.js" type="text/javascript"></script>
<script type="text/javascript">
    function validator() {
        if ($('#MyRegister1_txtUserName').val() == '') {
            $('#divusername').text('请输入用户名');
            return false;
        }
        if ($('#MyRegister1_txtPwd').val() == '') {
            $('#divPwd').text('密码不能为空');
            return false;
        }
        if ($('#MyRegister1_txtEmail').val() == '') {
            $('#divEmail').text('邮箱不能为空');
            return false;
        }
        if ($('#MyRegister1_txtMobile').val() == '') {
            $('#divMobile').text('手机不能为空');
            return false;
        }
        if ($('#MyRegister1_txtPwd').val() != $('#MyRegister1_txtPwdOk').val()) {
            $('#divPwdOk').text('两次输入的密码不一致');
            return false;
        }
        return true;
    }

</script>
<table>
    <tr>
        <td>
            用户名
        </td>
        <td>
            <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
        </td>
        <td>
            <span id="divusername"></span>
        </td>
    </tr>
    <tr>
        <td>
            密码
        </td>
        <td>
            <asp:TextBox ID="txtPwd" runat="server"></asp:TextBox>
        </td>
        <td>
            <span id="divPwd"></span>
        </td>
    </tr>
    <tr>
        <td>
            确认密码
        </td>
        <td>
            <asp:TextBox ID="txtPwdOk" runat="server"></asp:TextBox>
        </td>
        <td>
            <span id="divPwdOk"></span>
        </td>
    </tr>
    <tr>
        <td>
            用邮箱户名
        </td>
        <td>
            <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
        </td>
        <td>
            <span id="divEmail"></span>
        </td>
    </tr>
    <tr>
        <td>
            手机
        </td>
        <td>
            <asp:TextBox ID="txtMobile" runat="server"></asp:TextBox>
        </td>
        <td>
            <span id="divMobile"></span>
        </td>
    </tr>
    <tr>
        <td>
            <asp:Button ID="Button1" runat="server" Text="注册" OnClientClick="return validator();" onclick="Button1_Click" />
        </td>
        <td>
            <span id="divTotal" runat="server"></span>
        </td>
    </tr>
</table>

Web用户控件后台:

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


namespace 委托的简单应用
{
    public partial class MyRegister : System.Web.UI.UserControl
    {
        public event InsertDelegate On_insert;
        protected void Page_Load(object sender, EventArgs e)
        {


        }


        protected void Button1_Click(object sender, EventArgs e)
        {
            if (On_insert!= null)
            {
                if (On_insert(txtUserName.Text, txtPwd.Text, txtEmail.Text, txtMobile.Text) == true)
                {
                    this.divTotal.InnerHtml = "注册成功";
                }
                else
                {
                    this.divTotal.InnerHtml = "注册失败";
                }
            }
        }

        //定义委托
        public delegate bool InsertDelegate(string username,string pwd,string email,string mobile);

    }
}

Web窗体添加对Web用户控件的引用其后台:

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


namespace 委托的简单应用
{
    public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.MyRegister1.On_insert += new MyRegister.InsertDelegate(MyRegister1_On_insert);
        }


        bool MyRegister1_On_insert(string username, string pwd, string email, string mobile)
        {
            return WriteTxt(username,pwd,email,mobile);
        }
        /// <summary>
        /// 将注册信息写入到记事本
        /// </summary>
        /// <param name="username">用户名</param>
        /// <param name="pwd">密码</param>
        /// <param name="email">邮箱</param>
        /// <param name="mobile">手机</param>
        /// <returns>确认是否写入成功</returns>

        private bool WriteTxt(string username, string pwd, string email, string mobile)
        {
            using (Stream stream=File.Open(@"d:\new.txt",FileMode.Append,FileAccess.Write))
            {
                using (StreamWriter writer=new StreamWriter(stream))
                {
                    writer.WriteLine("用户名:{0},密码:{1},邮箱:{2},手机:{3}",username,pwd,email,mobile);                    
                }
            }
            return true;
        }
    }
}