RequiredFileldValidator: 检查某个字段是否输入; 空值检查

主要属性:
ControlToValidate:要验证的控件
ErrorMessage:错误提示信息

CompareValidator: 将某个字段的内容与指定的对象进行比较;

主要属性如下:

BackColor

CompareValidator 控件的背景颜色。

ControlToCompare

要与所验证的输入控件进行比较的输入控件。

ControlToValidate

要验证的输入控件的 ID。

Display

验证控件中错误信息的显示行为。合法值是: None 验证消息从不内联显示。Static 在页面布局中分配用于显示验证消息的空间。Dynamic 如果验证失败,将把

用于显示验证消息的控件动态添加到页面。

EnableClientScript

布尔值,规定是否启用客户端验证。

Enabled

布尔值,规定是否启用验证控件。

ErrorMessage

当验证失败时在
ValidationSummary 控件中显示的文本。注释:如果未设置
Text 属性,此文本将显示在验证控件中。

ForeColor

控件的前景颜色。

id

控件的唯一 ID。

IsValid

布尔值,指示由 ControlToValidate 指定的输入控件是否通过验证。

Operator

要执行的比较操作的类型。运算符是:Equal  GreaterThan 
GreaterThanEqual LessThan LessThanEqual  NotEqual 
DataTypeCheck

runat

规定控件是服务器控件。必须设置为 "server"。

Text

当验证失败时显示的消息。

Type

规定要对比的值的数据类型。类型有:Currency  Date 
Double  Integer  String

ValueToCompare

一个常数值,该值要与由用户输入到所验证的输入控件中的值进行比较。

    
 Operator=&quot;Equal&quot; Type=&quot;String&quot;<br />
1,用户注册时,<br />
密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 码:<asp:TextBox ID="txtUserpass"
runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="txtUserpass" ErrorMessage="请输入密码"></asp:RequiredFieldValidator>
<br />
重复密码:<asp:TextBox ID="txtUserpass2" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
ControlToValidate="txtUserpass2" Display="Dynamic" ErrorMessage="请输入重复密码"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CompareValidator1" runat="server"
ControlToCompare="txtUserpass" ControlToValidate="txtUserpass2"
ErrorMessage="重复密码有误" Operator="Equal"
></asp:CompareValidator>
Operator=&quot;GeaterThan&quot; Type=&quot;Currency&quot;<br />
2,请输入您应付金额:<asp:TextBox ID="txtMoney" runat="server"></asp:TextBox>
<asp:CompareValidator ID="CompareValidator2" runat="server"
ControlToValidate="txtMoney" ErrorMessage="您输入的金额有误" Operator="GreaterThan"
Type="Currency" ValueToCompare="0"></asp:CompareValidator>
<br />
<input id="Reset1" type="reset" value="重置" />&nbsp;&nbsp;
<asp:Button ID="Button1" runat="server" Text="提交" />
<br />

RangeValidator: 检查某个字段的内容是否处于指定的范围内;

ControlToValidate:要验证的控件
ErrorMessage:错误提示信息
MaximumValue:最大值
MinimumValue:最小值
Type:Integer 整型 ;Date 日期 ;Double 双精度浮点型 ;String 字符串型(默认类型) ;Currency 货币类型

 <td style="font-size: 9pt; width: 87px">
<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="txtMath"
ErrorMessage="分数在0~100之间" MaximumValue="100" MinimumValue="0" Type="Double" Width="97px"></asp:RangeValidator></td>
大小写的验证:
请输入大写词汇:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RangeValidator ID="RangeValidator2" runat="server"
ControlToValidate="TextBox1" ErrorMessage="请输入大写词汇" MaximumValue="Z"
MinimumValue="M"></asp:RangeValidator>
<br />
请输入小写词汇:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:RangeValidator ID="RangeValidator3" runat="server"
ControlToValidate="TextBox2" ErrorMessage="请输入小些词汇" MaximumValue="z"
MinimumValue="a"></asp:RangeValidator>
<br />

RegularExpressionValidaor: 检查输入的内容是否符合指定个格式; 电话号码/IP地址等的格式校验;

BackColor

RangeValidator 控件的背景颜色

ControlToValidate

要验证的控件的 id

Display

验证控件的显示行为。

合法的值有:None - 验证消息从不内联显示。Static - 在页面布局中分配用于显示验证消息的空间。

Dynamic - 如果验证失败,将把用于显示验证消息的控件动态添加到页面。

EnableClientScript

布尔值,规定是否启用客户端验证。

Enabled

布尔值,规定是否启用验证控件。

ErrorMessage

当验证失败时,在 ValidationSummary 控件中显示的文本。注释:如果未设置 Text 属性,文本也会显示在该验证控件中。

ForeColor

该控件的前景色。

id

控件的唯一 id。

IsValid

布尔值,指示关联的输入控件是否通过验证。

runat

规定该控件是一个服务器控件。必须设置为 "server"。

Text

当验证失败时显示的消息。

ValidationExpression

规定验证输入控件的正则表达式。在客户端和服务器上,表达式的语法是不同的。

<td style="font-size: 9pt; width: 87px">

                    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtEmail"

                        ErrorMessage="格式不正确" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator></td>

CustomValidaor: 自定义验证条件;

BackColor

CustomValidator 控件的背景颜色。

ClientValidationFunction

规定用于验证的自定义客户端脚本函数的名称。

ControlToValidate

要验证的输入控件的 id。

Display

验证控件中错误信息的显示行为。合法的值有:None - 验证消息从不内联显示。Static - 在页面布局中分配用于显示验证消息的空间。

Dynamic - 如果验证失败,将把用于显示验证消息的控件动态添加到页面。

EnableClientScript

布尔值,该值指示是否启用客户端验证。

Enabled

布尔值,该值指示是否启用验证控件。

ErrorMessage

验证失败时 ValidationSummary 控件中显示的错误信息的文本。

注释:如果设置了 ErrorMessage 属性但没有设置 Text 属性,则验证控件中也将显示 ErrorMessage 属性的值。

ForeColor

控件的前景色。

id

控件的唯一 id。

IsValid

布尔值,该值指示关联的输入控件是否通过验证。

OnServerValidate

规定被执行的服务器端验证脚本函数的名称。

runat

规定该控件是服务器控件。必须设置为 "server"。

Text

当验证失败时显示的文本。

下面这个示例来源于互联网, 原贴地址(http://www.cnblogs.com/lhl98/archive/2012/10/31/2748549.html)

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"%>
<!DOCTYPE html PUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
  <title>CustomValidator验证控件用法的例子</title>
  <script type="text/javascript">
       //obj表示被验证的控件
   //args表示事件数据,args有两个属性
   //IsValid指示控件是否通过验证
   //Value表示被验证的控件的值
   function CheckEven(obj, args) {
   var numberPattern = /\d+/;
   //由于控件的ValidateEmptyText设置为true
   //所以当控件没有值时进行客户端验证
   if (!numberPattern.test(args.Value)) {
   args.IsValid = false; //表示未通过验证,出现错误提示
   }
   else if (args.Value % 2 == 0) {
   args.IsValid = true; //表示通过验证,不出现错误提示
   }
   else {
   args.IsValid = false; //表示未通过验证,出现错误提示
   }
   }
   function CheckMultiple3(obj, args) {
   //由于控件的ValidateEmptyText没有设置,使用了默认值false
   //所以当控件没有值时不进行客户端验证
   var numberPattern = /\d+/;
   if ((!numberPattern.test(args.Value)) || (args.Value % 3 != 0)) {
   args.IsValid = false;
   }
   else {
   args.IsValid = true;
   }
   }
  </script>
</head>
<body>
  <form id="form1" runat="server">
   <div>
   <table border="1" width="600">
   <tr><td colspan="2" align="center">CustomValidator验证控件用法的例子</td></tr>
   <tr><td>
填一个3的倍数</td><td>
     <asp:TextBox ID="txtOdd" runat="server"></asp:TextBox>
     <asp:CustomValidator ID="CustomValidator2" runat="server" ControlToValidate="txtOdd"
ErrorMessage="请输入3的倍数" ClientValidationFunction="CheckMultiple3"
Display="Dynamic" OnServerValidate="CustomValidator2_ServerValidate"
ValidateEmptyText="True"></asp:CustomValidator>
</td></tr>
   <tr>
<td>填一个偶数</td>
<td>
     <asp:TextBox ID="txtEven" runat="server"></asp:TextBox>
     <asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="txtEven"
         ErrorMessage="请输入偶数" ClientValidationFunction="CheckEven" ValidateEmptyText="True" OnServerValidate="CustomValidator1_ServerValidate"></asp:CustomValidator>
</td>
</tr>
   <tr><td>
     <asp:Button ID="Button2" runat="server" Text="提交"/>
   </td>
<td>
     <input id="Reset3" type="reset" value="重置"/></td>
</tr>
   </table>
   </div>
  </form>
</body>
</html>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
//用于验证控件值是否为3的倍数
protected void CustomValidator2_ServerValidate(object source, ServerValidateEventArgs args)
{
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"\d+");
//先用正则判断用户输入的是否能转换成数字
if (!regex.IsMatch(args.Value))
{
args.IsValid = false;//表示验证不通过
}
else
{
//如果对3取模为0就是3的倍数
args.IsValid = (int.Parse(args.Value) % == );
}
} //用于验证控件值是否为偶数
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"\d+");
//先用正则判断用户输入的是否能转换成数字
if (!regex.IsMatch(args.Value))
{
args.IsValid = false;
}
else
{
//如果对2取模为0就是偶数
args.IsValid = (int.Parse(args.Value) % == );
}
}
}

ValidationSummary: 错误汇总控件, 该控件不提供具体的验证功能, 只负责显示所有的验证报错信息;

DisplayMode

如何显示摘要。合法值有:BulletList   List   SingleParagraph

EnableClientScript

布尔值,规定是否启用客户端验证。

Enabled

布尔值,规定是否启用验证控件。

ForeColor

该控件的前景色。

HeaderText

ValidationSummary 控件中的标题文本。

id

控件的唯一 id。

runat

规定该控件是一个服务器控件。必须设置为 "server"。

ShowMessageBox

布尔值,指示是否在消息框中显示验证摘要。为True时, 网页上错误信息不在网页本身显示, 而是弹出一个模态对话框的形式显示; 如果不想将错误信息显示在网页上, 完全以对话框的形式显示, 则必须将ShowSummary属性设置为False; 否则, 弹出对话框的同时也会在页面中显示;

ShowSummary

布尔值,规定是否显示验证摘要。

                <td style="font-size: 9pt; width: 109px; height: 27px">
<asp:ValidationSummary ID="ValidationSummary1" runat="server" Width="150px"
Height="35px" />
</td>

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAATIAAAC4CAIAAADv+PeYAAAQF0lEQVR4nO2dPY7cuBZGWTuYJUxaETvwAmYJg87vYABvYMLXL3LKwCvoYJZgJo68CAdD4AHOZgXeQd8XkKL4cympWqoqqvQdNOAulURVmzx1+SNdKQYAdIa69wcAAJRASwC6A1oC0B3QEoDugJYAdAe0BKA7oCUA3QEtAegOaAlAd+xHS2e0Ni68sKTIZm/XW+rj1VjAMiwpRdYfW5XujFby1uYHKd+c3Fn4HOAg7EfLonFWLxQZV0qXqvgeLQdtnHP+FIkalrKiW6SnFOxqCzdVaACmPip70jJTIXmRxdHm7mu0DK+cddXJLeXqTQRAf4yladdS1ye8WxpowR7Zh5ZzTVmMIIsOikYtPoU2buwxD663QlsizqVfC4iWB2Y3Wi5p0WkEqXqHM1qIp5BDUiZMeVAriiWd4CnhktiMaHlcHlNLaTbmPVpOnjgWOBNohzmjC8MbouWB2YeWgan235iNGZnXMmcwLh5TFLDwq2I4kiiG72V/BqLlgdmVljWhhS8NpUujZRZ2k55nJk050SMQp6TIXrzIgWh5YParpbxsOLJoDiebIBK0HDbXUuaFSLGrCKfv0RLR8qDsQcsFcaOKUHIp7WiZt/JRIWe00lqralI1dyyPqpnRcpkXfvj2IhB4RPagpcyl4WJay+YSp3do7poEScZJLaVCigsUhijte9POFAukMPWBgZbMHI0YO77pOkvxsl4ZFdZK6zNdomXctwricas2tjYVPAjQsv2Wd4ysMzo0/3DOsRdahsOin/q+aJlcOCTumm6cvRQY7JHdaZkOzFoN8oKLgpRSZITe4KhiUWR9zjpmZoXUgfaisaX8t0DFx2Z3WgLw+EBLALoDWgLQHdASgO6AlgB0B7QEoDugJQDdAS0B6I5Otfwv2BX3bi+PRr9a3vsjgKWgsjYHWoK1oLI2B1qCtaCyNgdagrWgsjYHWoK1oLI2R9LSkpD8VL6V6IL0bxeBmt4RiyrLEleNihuNipVmsVEZzUpN/YQCHT+d2L6VJ3KGTypsN0/JzsRvwtnSz8pPJzb/zP+ZGyFomTnoFZW1lG8F3ERTaLkjFlWW0Zw0KjauoaWVfRMblTN80vxPpRQ9sXtjtnwifhtsVIq1yfSzxGSbWloKR7V+vsyovIZCy8y0kEVRsq5OMsW8ZXYZaLkj5iorN80yU8M6HwyrRsXayAXTSRCbTmX8TP0XvgvaWk60ZUqi8RWoo6UzFPJjkB26s3m0TNKJvy+d8TzQckcsqCzHZJh9zLRBs8IQo8N2SnqwlppOWmI12/n0diUn8rJZmuwM5xHYmRB12fLpdNUgGam0HAy0pIn0mFKmObYcgupkHotLk6RCyx0xX1nRQNJMmodG1R5bDkG11WZ8v1Rrto61ZvdWvpWNNm22pYhyo3UDoQ/MwcOi6+uj8ZXlrLQMEbCKj43/ILk3WwEtH5j5ygodQseaxo1NLRu92aQ4Pik2/7DRbN/Cy7SbGkUKo8dJxrmfcDw/aXZvTKd2NL76DFCp5ZhFPE/QWM/otPJYYcrnaMxXFqkwx6ONPKkT20w97CynfBzrQULzNIa+aFEdLaOc/q1Mp2HOlqJmyVCzKKrVy70C8kxsGQDzaOmF1Fqa36kXV94FtNwRS2diiwBYREsvpNbCRMs4+2KTVZBcSx4GonW0jCPJojvqS4gbQ9i0ZZ9WPNeVkdYt66e+SZ1Yedq1oSU6sQ/MospyhpViNdeJNRNaOta52KIqE9GyOKm4vpJanX2wO2uZJBFO/gBRy+WdWGj5wCyorOEKgZYhkdYFA2IXrKVlHS2LmVj/i9gXTePn7LmuRqFlFgJl8Ya/8KJoeSnQckfMVZafLB1eieKN/dLpTmzOlJbD7Kv5R5iJrRdX0tVOP8va0+UEvQAtdwQqa3OgJVgLKmtzoCVYCyprc6AlWAsqa3OgJVgLKmtz+tUS7Ih7t5dHo1MtATgy0BKA7oCWAHQHtASgO6AlAN0BLQHoDmgJQHdAS3BLbLjlsk7n4UyWWMQnsGxm/RhSe3SK46enNRkMoCW4Gel9zNU9zexVdKxpvL0rzS7LC9I3h1sl451c78juYflU5OmxfDpVpTl+Ok3e4eWzHLzTTGgJboNjXdzNnGdPr5WztlQuMpWmNcl/tTBpZXqgIqY0309eWswnQiemL0PqIK9rImrz+2IpnWp574vJwGXMVKfPGCLcymzL7YZYDwbGzLGx6xtLG1t5lXonSzCZP/VgIZRES7k0m2Ub+WMyC55PYnLhPdP9annvjwCWMl9Z1HimSHjXe+i7tY41sSU2lonCODNLrO53i6280rIYjtLlmSPTQ8TSinw/PjeX6N27nGRoCdazqLJaiczHVJReXT/lE7OwU8gAFHczmhWNOUHqPJFF3tdCS0pHiY15o/QQsTSfYm9WS/P07tSV0BKs5YLKKh4oUmbuybP+8BCsaJgciunzxqZ+UbS0/JTPCYnTvBtES8dPVTr2S4CWYC0XVFaRLCvVkqo5EubQZY0mk2Zn57UcfVg9thRLK56PUIwthSTRFwMtwVoWV1YVDClZI3FmmNdJ105sOQfLc1qmKha9zYVkAbZRWtwnKPo2/O6D+doFVeHRQOMDu+I/ac5YT9xSpbC8JB1sE2i5I5ZVVjXpKixdJisiMRu6TadkeYGWaQbn5asjCSRFP6HznC9m+pUSQ0MWzFW0HjvrjCYzGNd86mxm5nZPt4SWu2K+snyu5NA2HGtxKVJly5h+yTEtIV0saT2qZMVwbi3mj+w5X+s+W6llnbKZbP4QIG1c66lAZYbn95PU9NePY8EfPv/wG398/nDHjSAD36GbI48trSHS4bkF8SGzY3ycTJ3efujeBYw1/ePzh49f469BjftuBDnQcnOkp0Fr5Tux1pI21hCRFy3vpYqPQmgJuc0zSL5+VGqwJPLj84c7bgTQ8grUz7dMh5Nx/oeqZ7LnzD19dhMtxXj19aMQw262ETC0vAJiJ7aavLHkh5jNJ7VvNtcTEGr6x+cPeawchn2ZLDfbCCLQcnOEp0Fn6OE593p8RN7cjM8Gcz5VTX/92NJC7NnebCOAlldAWLfU47pH9MuSaj9+vRlGs11WdGLbTnKja3uzjWD506DjLZT14sEWa92PhNiJTcIhWf+KbDolW+1+RS0lJ79+jGFrlOVmG0HO0mgpPruS82t9ADM3OrGJfIVP+TAyTsZuPbRMajpdtowjvHQ1UaUrGDfZCHIW3W/pG1ERKn2zgZYVuCYWrOUyLaOB8bJ1aFkBLcFaoOXmQEuwFnRiNwdagrUgWm4OtARrgZab06+WYEfMVCc6sRfSqZbgoRCjZWQ6L94hgZbg+kQtU8ZceCQdc2igJQDdAS0B6A5oCUB3QEsAugNaAtAd0BKA7oCWAHQHtASgO/rVUv3nf7393Pu/BBwFaAktQXf0ruW/fQAtwS2BlouAluCWQMtFQEtwS6DlIqAluCXQchHQEtySHWv5+hwzuJ5fvqVbn1+zHb+9nMOW5JCC4hBoCe7JjrVMrItafns5q/P5LIhZiZceNgu0BLdk11q+Pp9fvuXB0JsWf5mQEFqCbnkALV+f1fNr1XsVOrM50BJ0y561DGHy9fn88vpyVs8vL+dsvHg+n5V/Kxk9RhuhJeiWPWuZTuDMGBYiaqHl0qOhJbgte9Yyly74FgXMoqGsJaIl6JN9a+kj3vPzs3p+/Tf3MrcOWoI9sV8tv72ch87nOOkT/ymk82+9PidvQEvQLfvVMmGIhVlMzKZhwzB0jKnQEnTMI2hZCzb6GfdAJxbsh11rGSdTx2WQgky8b/I+S+ZioSW4JbvW8nZAS3BLoOUioCW4JdByEdAS3BJouQhoCW5J71p29XPv/xJwFKAltATd0a+WABwWaAlAd0BLALoDWgLQHdASgO6AlgB0B7QEoDugJQDdAS0B6A5oCUB3QEsAugNaAtAd0BKA7oCWAHQHtASgO6AlAN0BLQHoDmgJQHdASwC6A1oC0B3QssISG5dtcYbJiruy0uykd4xmpaZ+QoGOteJYdjyRM6yG7UYnO9Pcp3esVfn5wd6AlhVGj554RWUtreybqIQzssDkN1pWNOymWCnWJj8VMdmmlpZmvgLErxTQMdAyxZatmRrW+WBYNHdnSp0ipASxqYqfqf/Cd0Fby4nwSNByfxxMy58/+dMn/v13/uuvxh6OyTD7mGmDZoUhRoftlARAS00nLYVgOI0lNsmJvGwzkTCPwM4MJ7IIkrvmYFr+9tvYpv/8U9ghGkiaSYcoNDW2HIKqvMPQL9WarWNdW1SMNqtwXRaV6z1+L1ih60vowe6VI2n5/XvW6H/5RdgndAjz7mJTy0ZvNiku9HvDeNUmkz15pzeMHicZ537C8cFzUu1ojBmgXXIkLX/+zLT89VdhH1JhjkcbeVInNvF62FlO+TjWg4TpNFK0qI6WUU7/VqbTMGdLcXvy3VEU1erlgp1wJC2Z+dOnMVR++SLvUwfAIlp6IbUWotA4+5IHxlRLHgaidbSMI8l6mBoHtBzDppWDZHEusEMOpiUzf//Of//N3783dwiRZ64Taya0zFcjuaHKRLQsTiqur7QmfqHl/jmeljMMVwi0DIm0LhgQB3ItLetoWczE+l/EvmgaP2fPBXYFtEzJJ0tF8dJ+6VQnNmdKS5v4XM3E1osrlO/AuJzgAYGWAHQHtASgO6AlAN0BLQHoDmgJQHdASwC6A1q2GK6hqa9WdSa7btYvfjQvaq2uUO+L9seLf5G4AIPrbK8JtBRJL9OpLtlhr6JjTePqZbEyOZudIFwJEBcq36GurfQQS3OspxcwGxfxcfu7RlyzBdsBLWvquy7y5CC1ctZKyjHz9F3IyYkW3pOZHqgouWy9XVq86Wy8gi8RdeL7wv9ShMp45T20vCYH03L2Nmjh1g1PFZoMsR4a8XgdnC0vph0VrYJSdv+kFJNnSbWUS8u/UGiy85kmEEq1TE8BLW/CwbScvQ2aJjuT5D30jd6xJrbExjJRGGdmHhamVVoWXcRpZ1qfJx4illZczl7esZmQOcnQ8r4cScslt0Fz+xLT8U7L2BWkJMkIhQvc425Gs6JGJi7NrpKk0JLSUWJjYiY9RCytSGXS0tLoanCLTuw9OZKWS26DjtRxprwpOW/HPljFkWR9d9hl0dKWc0KiThtESzd2xfMPh2h5R46kJS+7DdpT3AuSNsQiL0Fo03n7Js3OzmvZ7PEuo9CyLq1I/1ME5OZAmqHlfTmYlrzgNmhmIRhSnmQ5tPXUpTrJ1ZyW6eETifMmqGdi69LiPqmiQjAvQCf2nhxPy3nq9cA6lNmspfq2a4tbk2e1TBMULF8dSRCjn9B5zhcz/UqJocmrAqRoGcGd1lcGWuZkqQCS9b1iKVLlGWJTDcZIZcPS4tTy4D3ws1PhE7Y+mxU+4ah9z9ctPQLQEoDugJYAdAe0BKA7oCUA3QEtAegOaAlAd0BLALoDWgLQHdASgO6AlgB0B7QEoDugJQDdAS0B6I7/A4R447D0+X6XAAAAAElFTkSuQmCC" alt="" />

最新文章

  1. SDWebImage源码解读之SDWebImageCache(下)
  2. three.js笔记
  3. Android笔记:异步消息处理
  4. 揭秘JavaScript中谜一样的this
  5. Winform开发框架中实现同时兼容多种数据库类型处理
  6. IO&amp;Seralize
  7. (1)QlikView概要
  8. Android UI SurfaceView的使用-绘制单个图型或多个图形
  9. 学习笔记TF022:产品环境模型部署、Docker镜像、Bazel工作区、导出模型、服务器、客户端
  10. http中的get和post(二)
  11. 使用EL表达式调用java方法
  12. spring MVC(十)---spring MVC整合mybatis
  13. Django 中使用ImgFiled 和FileFiled
  14. 找出点的密集区域,javascript实现,html5 canvas效果图
  15. FTP之二
  16. Python交互图表可视化Bokeh:5 柱状图| 堆叠图| 直方图
  17. TOJ5398: 签到大富翁(简单模拟) and TOJ 5395: 大于中值的边界元素(数组的应用)
  18. DM816X 实现 USB HID Gadget 鼠标键盘功能【转】
  19. 201-React顶级API
  20. 【Oracle 12c】最新CUUG OCP-071考试题库(58题)

热门文章

  1. 极客DIY:使用树莓派制作一架四轴无人机
  2. iOS开发 获取手机信息(UIDevice,NSBundle,NSlocale)
  3. C#_WinForm接收命令行参数
  4. Aborting commit: &#39;XXXXXXXX&#39;remains in conflict错误
  5. Day01_JAVA语言基础第一天
  6. ci(转)
  7. java 中获取文件路径
  8. Hadoop 流
  9. C++ 中的C_str()函数用法
  10. Tomcat发布网站知识集锦