20150225--ASP.NET基础(2)

一、引用外部样式表或JS,在<head>…</head>标签之间添加:

<link href="yangshi.css" type="text/css" rel="stylesheet" />
<script src="jquery-2.1.1.js"></script>

注意文件路径,  ../ 表示从本级目录向上一级,  文件名/  表示向下一级 

二、如何在ASP.NET的网页中实现用户登录:

1.使用ASP.net的控件:

按照下图绘制(注意图中的按钮使用的是ASP.NET的控件):

按钮的点击事件代码,需要写在.cs文件中,

protected void btnSubmit_Click(object sender, EventArgs e)
    {
        string user = txtUser.Text.Trim();//获取输入的用户名
        if (user == "")
        {
            Response.Write("<font size=36 color=#e3e3e3>不能为空</font>");
        }
        string pwd = txtPwd.Text.Trim();//获取输入的密码
        if (txtYzm.Text.Trim() == yzm.Text)
        {
            UserTableData udata = new UserTableDA().Select(user, pwd);//比对,这个方法并非Code Smith自动创建,
            if (udata != null)
            {
                Response.Redirect("http://baidu.com");//比对正确,打开百度网页
            }
            else
            {
                Label1.Visible = true;
            }
        }
        else
        {
            Response.Write("<font size=36 color=#ccaa55>验证码错误</font>");
        }
    }

Response.Write()  在HTML的源中写入()中的内容,遵循HTML的语言格式。

此段代码中使用的是Code Smith自动生成增删改查,与面向对象中的自己创建的增删改查是一样的。

Select(user,pwd)的内容:(根据Code Smith生成的代码改写)

public UserTableData Select(string user,string pwd)
        {
            UserTableData data = null;
            _Cmd.CommandText = "select * from UserTable where uname = @uname and [email protected]";
            _Cmd.Parameters.Clear();
            _Cmd.Parameters.AddWithValue("@uname", user);
            _Cmd.Parameters.AddWithValue("@upwd", pwd);
            try
            {
                _Conn.Open();
                SqlDataReader dr = _Cmd.ExecuteReader();
                while (dr.Read())
                {
                    data = new UserTableData();
                    data.Ucode = (Int32)dr["ucode"];
                    data.Uname = (String)dr["uname"];
                    data.Upwd = (String)dr["upwd"];
                    data.Uvip = (String)dr["uvip"];
                    data.Uremark = (String)dr["uremark"];
                }
                dr.Close();
                dr.Dispose();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                _Conn.Close();
                _Cmd.Dispose();
                _Conn.Dispose();
            }
            return data;
        }

 

使用HTML的控件,

注意其单击事件,有两种单击事件,一种是onclick,一种是onserverclick(在服务器上单击)

onclick事件是写在本页面中HTML的方法function():

<script>
        function yanzheng()
        {
            var x = document.getElementById("txtUser");
            if (x.value.length == 0)
            {
                alert("用户名不能为空");
            }
        }
    </script>

alert()  弹出对话框。

onserverclick事件写在此网页的.cs文件中

protected void btnSubmit_ServerClick(object sender, EventArgs e)
    {
        string user = txtUser.Value;
        string pwd = txtUser2.Value;
        UserTableData udata = new UserTableDA().Select(user, pwd);
        if (udata != null)
        {
            Response.Redirect("http://baidu.com");
        }
        else
        {
            Label1.Text = "用户不存在";
        }
    }

添加图片类型的验证码:

在网站项目中新加一个类:一般处理程序(.ashx文件),

然后写入以下代码(替代原有的代码):

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;
using System.Web.SessionState;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
public class Handler : IHttpHandler,IRequiresSessionState{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "image/jpeg";
        Bitmap img = new Bitmap(50, 20);//位图
        Graphics g = Graphics.FromImage(img);

        string s = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        string str = "";
        Random rand = new Random();//初始化随机数
        for (int i = 0; i < 4; i++)
        {
            int start = rand.Next(62); //生成一个随机的起始位置
            str += s.Substring(start, 1).ToString();
        }
        context.Session["code"] = str;

        Font font = new Font("宋体", 12, FontStyle.Bold);
        SolidBrush brush = new SolidBrush(Color.White);
        g.FillRectangle(brush, 0, 0, 50, 20);
        brush.Color = Color.Red;
        g.DrawString(str, font, brush, 0, 0);
        img.Save(context.Response.OutputStream, ImageFormat.Jpeg);
    }

    public bool IsReusable {
        get {
            return false;
        }
    }

}

在网页中添加一个Image的控件:

ImageUrl就是刚刚创建的一般处理程序的文件名。

注意,点击验证码只刷新验证码,用到了一个异步操作,在AJAX扩展中的两个控件:

ScriptManager与UpdatePanel

注意,ScriptManager控件必须在UpdatePanel之前,一般将其放在网页的最开始:

HTML源:

<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>

        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
        验证码:<asp:TextBox ID="txtCode" runat="server" Width="74px"></asp:TextBox>
        <asp:Image ID="Image1" ToolTip="看不清点击换一张" runat="server" ImageUrl="Code.ashx" />
        <br />
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="登录" />
        <asp:Label ID="Label1" runat="server" ForeColor="Red"></asp:Label>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
    </form>
</body>

UpdatePanel标签把需要单独提交的内容包裹起来即可。

 

时间: 2025-01-03 02:51:35

20150225--ASP.NET基础(2)的相关文章

网页设计Dreamweaver网页制作 商业网站建设案例课程 ASP.NET基础实例教程 淘宝开店教程

热门推荐电脑办公计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程 Excel函数应用教程 Excel VBA基础教程 WPS2013表格教程 更多>平面设计PhotoshopCS5教程 CorelDRAW X5视频教程 Photoshop商业修图教程 Illustrator CS6视频教程 更多>室内设计3Dsmax2012教程 效果图实例提高教程 室内设计实战教程 欧式效果图制作实例教程 AutoCAD2014室内设计 Aut

asp.net基础中Get和Post的区别。

1.可以设定form的Method属性制定表单提交方式,Get(默认值)是通过URL传递表单值,post传递的表单只是隐藏到http报文中,url中看不到. 2.Get和Post的区别:get是通过url传递表单值,post通过url看不到表单域的值:get传递的数据量有限,如果要传递大量数据不能用get,比如type="file"上传文章,type="password"传递密码或者<textarea>发表大段文章,post没有这个限制:post会有浏览

网页设计 Dreamweaver网页制作 商业网站建设案例课程 ASP.NET基础实例教程 淘宝开店教程 更多&gt;

热门推荐电脑办公计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程 Excel函数应用教程 Excel VBA基础教程 WPS2013表格教程 更多>平面设计PhotoshopCS5教程 CorelDRAW X5视频教程 Photoshop商业修图教程 Illustrator CS6视频教程 更多>室内设计3Dsmax2012教程 效果图实例提高教程 室内设计实战教程 欧式效果图制作实例教程 AutoCAD2014室内设计 Aut

ASP基础教程:ASP脚本基础

通过前两篇的学习,相信各位已经对 ASP 的动态网站设计有了一个基本的概念和整体的印象.从本篇开始作者将从脚本语言的使用着手,由浅入深地带领大家探索 ASP 动态网站设计的真正奥秘. 本文第二篇刊登后,很多朋友给我发了“妹儿”,希望能尽快看到本文的第三.第四.乃至第……篇,甚至有位朋友焦急地要我将 ASP 篇的全文发给他.看到有如此之多志同道合的朋友,令我精神大振.虽然 ASP 早在两年前就已经推出了,但直到今年它才以其灵活便捷的开发过程.良好的 WEB 数据库连接功能受到了国人的重视,然而由于

【ASP.NET 基础】表单和控件

1.HTML表单的提交方式 对于一个普通HTML表单来说,它有两个重要的属性:action 和 method.action属性指明当前表单提交之后由哪个程序来处理,这个处理程序可以是任何动态网页或者 servlet 或者 CGI(Common Gateway Interface),在asp.net里面一般都是都aspx页面来处理.method属性指明form表单的提交方式.它有两个可能值get和post. (1)get方式提交的表单在地址栏会显示参数名和参数值,而post方式不会.用post提交

【ASP.NET 基础】ASP.NET内置对象

准确地说,asp.net 并没有内置对象这一说,jsp 里确实把 request.response 这些当作 jsp 的内置对象,这里只不过是借用了一下 jsp 的说法而已.在 Web 中处于中心的是 Web 服务器,用来处理客户端的 HTTP 请求.由于 HTTP 是一种无状态的协议,也就是它并不记得上一次谁请求过它,不会主动去询问客户端,只有当客户端主动请求之后,服务器才会响应. 1.[Request] Request封装了客户端请求信息.Request的常见属性如下:  属性名  值类型

Asp.Net 基础知识回顾_认证授权

ASP.NET使用HTTP管道模型来处理HTTP请求,当一个HTTP请求到达Web服务器时,这个请求按"HttpModule >>Page/HttpHandle >>HttpModule"这样的顺序先后通过各个HttpModule和Page/HttpHandle对象,在这些对象中将触发应用程序事件.事件的触发顺序如下图所示. 从上图可以看到,在触发页面事件(即正式对页面进行处理)之前,将先触发Application_AuthenticateRequest.App

十四个关于ASP.NET基础知识问答(C#版)

这是一些ASP.NET很基础的东西,希望对ASP.NET爱好者特别是刚刚入门的朋友有所帮助虽然示例代码是C#.NET,但是不影响VB.NET朋友的参考.好,继续往下看吧! 1.ASP.NET能在那些系统中运行?目前,ASP.NET还只能运行在微软的Windows 2000.Windows XP.Windows 2003和Windows2008的下,当然是需要IIS支持的,最初要让Windows NT4.0也支持ASP.NET,但可能微软是有些技术问题或市场考虑,还没有实现NT下的ASP.NET的

【ASP.NET基础】简单企业产品展示网站--产品编辑CIUD

摘要:本文记录创建一个小的.简单的产品网站的步骤. 一,搭建一个简单的产品展示网站,熟悉以下知识点:NVelocity模板引擎.Ajax无刷新页面请求,文件上传,Row_Number实现分页,ckEditor使用,Bootstrap的简单使用.[点击查看网站效果] 二,网站基本框架:新建项目ProductWeb ,并完成基本框架的搭建(SQLHelper,ckEditor,Common_Nvelocity,Bootstrap等添加到项目中).并创建ProductWebDB .[下载基本模板框架]

【ASP.NET 基础】Page类和回调技术

Page 类有一个 IsPostBack 属性,这个属性用来指示当前页面是第一次加载还是响应了页面上某个控件的服务器事件导致回发而加载. 1.asp.net页面的声明周期 asp.net页面运行的时候将经历一个声明周期,这个生命周期中会进行一系列的操作,调用一系列的方法.了解asp.net页面的生命周期对于精确控制页面的控件呈现方式和行为非常重要. 一般说来一个常规页面要经历如下几个生命周期阶段:  阶段  说明  页请求  页请求发生在页生命周期开始之前.用户请求页时,ASP.NET 将确定是