zoukankan      html  css  js  c++  java
  • ASP.NET中级学习3

    注册练习:

    验证码的生成:

    public void ProcessRequest(HttpContext context)

            {

                string str="";Random r=new Random();

                for (int i = 0; i <= 4; i++)

                {

                    int j=r.Next(10);

                    str = str + j;

                }

                context.Session["YanZheng"] = str;

                context.Response.ContentType = "image/JPEG";

                using (System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(55,20))

                {

                    using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap))

                    {

                       g.DrawString(str, new System.Drawing.Font("宋?体¬?", 14), System.Drawing.Brushes.Red, 0, 0);

                      }

                    bitmap.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);

                }

            }

    C#中的正则表达式于js中差不多

     

     

    三种控件:

    HTML控件,Asp.Net把控件当成普通的字符串渲染到浏览器端,不去检验正确性、无法在服务器端进行处理。(元素写错了也不会报错)

     

    Asp.net服务端控件,进过Asp.net高度封装的控件,使用简单,运行在服务器端,可以在服务器端使用C#代码进行操作,会渲染到客户端为HTML控件。

     

    runat=server的HTML控件。在HTML控件的基础上添加 runat=server,也是运行在服务器端的,也可以使用C#代码进行操作,也会渲染到客户端,不像Asp.net服务器控件那么高度封装,暴露的属性大部分是普通HTML属性。和Asp.net服务器控件相比的好处是:当需要在服务器端对控件进行操作的时候,如果控件没有被Asp.net服务端控件封装的时候,用ruant=Server的html控件很方便,runat=Server的html控件也会对虚拟路径、id->ClientID进行处理,所以在虚拟路径、usercontrol中也可能会用到 (可以用来操作超链接,<tr><td>

     

    div等非控件加runat=server后,会变成HtmlControls.HtmlGenericControl类型的控件

    封装了一些属性,如果想操作其他未封装的属性如“class”css样式类,可以通过div1.Attributes["class"] = "error"; 进行操作,这样的话,就可以使得div的样式为:error了。

     

    a-àHtmlAnchor;   form-àHtmlForm;   head-àHtmlHead;

    inputàHtmlInputButton  HTmlInpuCheckBox  HtmlInputText等、metaàHtmlMeat;  HtmlTable、HtmlTableRow  HtmlTableCell; HtmlTitle .未单独封装(如div)对应类型为HtmlGenericControl。使用Attributes属性操作为封装的属性。

     

    验证控件:

    不能为空校验:InitialValue="请填写姓名” 设定初始值,当控件是该值时,认为空。

    页面中的IsValid属性用来判断页面中的所有Validator是否都校验通过了,只有都通过了才为True,几时页面中的Validator服务端校验报错,在服务器端方法中的业务代码也会被执行,因此如果代码在数据校验不通过时不让执行,则需要判断IsValid的值。

    <span style="display:none">看不到我</span> 不占据空间

    <span style="visibility:hidden">看不到我</span> 会占据空间

    验证控件都有display属性,用来决定如何显示错误信息。有三个值:static:没有错误信息的时候控件的visiblity样式为hidden来实现隐藏。Dynamic:没有错误信息的时候用display样式为none来实现隐藏。还有一个为None。

     

    都会在客户端和服务器端同时校验。

    可以通过设置ValidationGroup来为其分组,有时候一个页面有两个表单,为使其互不干扰,就可以为其分组。类似于radiobutton。

     

    如果将按钮控件的CausesValidation属性设为false,则这个按钮的点击不触发校验。

     

    范围验证控件:RangeValidator。有Date,String,Double,int,等多种类型的数据可以选用,范围可以编程动态的设定。

     

    正则表达式验证:可以自定义验证表达式:比如QQ号(5-11位的数字)\d{5,11}

    个人说明10到50字之间 \w{10,50}

     

    每个验证控件都有ErrorMessage、Text两个属性,ErrorMessage是用来显示到ValidationSummary控件中的值,Text是用来显示到验证控件上面的值,如果Text为空,则ErrorMessage会同时显示到汇总控件和验证控件上面。

     

     

    母版页

    母版页中,对图片的引用,可以会出现路径问题,需要用服务器端图片控件。

    并将其路径设为相对路径,相对应用的路径。例如:ImageUrl=”~/images/banner.jpg” ;

    也可以用ruant=server的HTML控件 src=”~/images/banner.jpg” ;

     

     

    如果不希望用服务端控件占用过多资源,也可以通过ResolveClientUrl(”~/images/banner.jpg” )方法结合“html页面使用C#后台代码的方式:

    <%= ResolveClientUrl(”~/images/banner.jpg” )%>动态转换路径。

     

    <%@ Page Title="首页" Language="C#" MasterPageFile="~/母版/MyMaster1.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="注册练习.WebForm1" %>

    使用了母版的具体页面,需要改标题:只需更改最上边的 Page Title= “xx”.就ok了。

    母版页中的服务器端控件必须放到runat=Server的form中。

     

    如需在具体页面中操作母版页中的服务端控件,用到如下方法:

    Button b = (Button)this.Master.FindControl("btnMaster");

    b.Visible=false;

     

    数据绑定控件简介

    从数据绑定开始用WebApplication,否则会有很多麻烦。

    数据绑定分为数据源和数据绑定控件两部分、数据绑定控件通过数据源来获得数据,通过数据源来隔离数据提供者和数据使用者,数据绑定控件通过数据源来对数据进行修改。

    数据源有SqlDataSource、AccessDataSource、ObjectDataSource、LinqDataSource、EntityDataSource、XmlDataSource等,由于大部分项目都不会页面直接连接数据库(因为违反了最基本的分层原则),所以SqlDataSource,AccessDataSource都不会使用,LinqDataSource、EntityDataSource也是只有在很极端的采用Linq,EF的项目中才会用到。

    XmlDataSource是处理xml数据时才可能会用。ObjectDataSource是web开发中应用最广的数据源,也能很容易的进行数据库切换。

     

    数据绑定控件有列表数据绑定控件(DropDownList、 RadioButtonList、ListBox、CheckBoxList、BulletedList等)和复杂控件(DataGrid(2.0之后就没用了),GridView、DetailsView、FormView、ListView、Repeater、DataList)GridView等都是ListView子集。

    Repeater是最轻量级的组件。在互联网的前台用的最多,ListView是ASP.Net3.5中新增的控件,ListView是GridView、DetailsView、FormView、Repeater、DataList等控件的大一统,那些控件的优点ListView全都有,会了ListView,其他控件就会用了,因此数据绑定控件主要讲列表数据绑定控件、Repeater和ListView,项目中会用到FormView、GridView。

     

  • 相关阅读:
    易语言常用源码
    ci的数据库地址
    格式化输出php数组
    mysql插入表情问题
    线程、进程与协程2
    线程、进程与协程
    if __name=='__main__"的作用
    动态导入模块
    面向对象补充之方法
    getpass模块
  • 原文地址:https://www.cnblogs.com/YangFengHui/p/2018592.html
Copyright © 2011-2022 走看看