一般在注册的时候会用到:
验证控件:
一、非空验证:RequiredFieldValidator
ErrorMessage:
ControlToValidate:
Display:Static--不显示也占空间。Dynamic--不显示不占空间
InitialValue:初始值。
应用:
1.必须填
2.像“不能为空”,这种提示的形式。
二、对比验证:CompareValidator
ErrorMessage:
ControlToValidate:
Display:Static--不显示也占空间。Dynamic--不显示不占空间
ControlToCompare:要对比的控件。
ValueToCompare:要对比的值
Type:按照什么类型对比。输入的类型。
Operator:运算符
应用:
1.密码和确认密码——两个控件对比
2.月收入——控件和某个固定值对比。
三、范围验证: RangeValidator
ErrorMessage:
ControlToValidate:
Display:Static--不显示也占空间。Dynamic--不显示不占空间
Type:按照什么类型对比,需要输入的是什么类型
MaximumValue:范围的最大值
MinmumValue:范围的最小值
四、正则表达式验证:RegularExpressionValidator
ErrorMessage:
ControlToValidate:
Display:Static--不显示也占空间。Dynamic--不显示不占空间
RegularExpression:正则表达式
注意:正则表达式的使用与修改
五、自定义验证:CustomValidator
ErrorMessage:
ControlToValidate:
Display:Static--不显示也占空间。Dynamic--不显示不占空间
ClientValidationFunction:自定义的客户端验证函数
第一步:设置ClientValidationFunction属性
第二步:为ClientValidationFunction的属性编写JS代码
//像C#服务端事件函数一样,sender是事件源,args是事件数据
function checkSex(sender, bbb) {
//把要验证的值取出来。
var s = bbb.Value; //把验证控件要验证的那个控件(文本框)里面的值给取出来。
//进行验证
if (s == "男生" || s == "女生") {
//告诉系统,验证结果是否正确
bbb.IsValid = true;
}
else {
//告诉系统,验证结果是否正确
bbb.IsValid = false;
}
}
六、ValidationSummary:验证汇总控件
ShowMessageBox:是否以对话框的形式显示错误信息
ShowSummary:是否在页面上显示错误信息
七、验证分组:
把同一组的输入控件、按钮、验证控件的ValidationGroup属性设成一样的。
Repeater控件:展示数据库相关的数据
外观与数据分离。
外观代码:用模板来实现的。(头,脚,项,交替项,分隔符模板)
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li><%# Eval("Name") %></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
数据代码:C#的绑定代码。
var query = _Context.Info;
Repeater1.DataSource = query;
Repeater1.DataBind();
Repeater在模板中绑定数据三种方式:
1.<%# Eval("属性名或列名","格式如{0:yyyy-MM-dd}")%>
2.<%# 函数名()%>,函数需要事先在.cs文件写好,并返回字符串。如:
public string ShowSexName()
{
bool sex = Convert.ToBoolean(Eval("Sex"));
return sex ? "男" : "女";
}
3.如果使用的实体类(如Linq),可扩展属性,在模板中使用<%# Eval("扩展属性")%>进行绑定。
eg1:
1.造一个Car类,用于输出系列名字(Brand1.Brand_Name)和厂商名字(Brand1.Productor.Prod_Name)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 /// <summary> 2 /// Car 的摘要说明 3 /// </summary> 4 public partial class Car 5 { 6 public string BrandName 7 { 8 get 9 { 10 return Brand1.Brand_Name; 11 } 12 } 13 public string ProdName 14 { 15 get 16 { 17 return Brand1.Productor.Prod_Name; 18 } 19 } 20 21 }
2.新建一个web窗体,拖入Repeater控件,在源代码里写代码
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <asp:Repeater ID="Repeater1" runat="server"> 2 <HeaderTemplate> 3 <table width="100%" border="0" cellspacing="1" cellpadding="5" bgcolor="black"> 4 <tr> 5 <td align="center" bgcolor="#CCCCCC">代号</td> 6 <td align="center" bgcolor="#CCCCCC">名称</td> 7 <td align="center" bgcolor="#CCCCCC">系列</td> 8 <td align="center" bgcolor="#CCCCCC">上市时间</td> 9 <td align="center" bgcolor="#CCCCCC">油耗</td> 10 <td align="center" bgcolor="#CCCCCC">功率</td> 11 <td align="center" bgcolor="#CCCCCC">排量</td> 12 <td align="center" bgcolor="#CCCCCC">价格</td> 13 <td align="center" bgcolor="#CCCCCC">图片</td> 14 </tr> 15 </HeaderTemplate> 16 <FooterTemplate> 17 </table> 18 </FooterTemplate> 19 <ItemTemplate> 20 <tr> 21 <td align="center" bgcolor="#FFFFFF"><%# Eval("Code") %></td> 22 <td align="center" bgcolor="#FFFFFF"><%# Eval("Name") %></td> 23 <td align="center" bgcolor="#FFFFFF"><%# Eval("BrandName") %></td> 24 <td align="center" bgcolor="#FFFFFF"><%# Eval("Time","{0:yyyy/MM/dd}") %></td> 25 <td align="center" bgcolor="#FFFFFF"><%# Eval("Oil") %></td> 26 <td align="center" bgcolor="#FFFFFF"><%# Eval("Powers") %></td> 27 <td align="center" bgcolor="#FFFFFF"><%# Eval("Exhaust") %></td> 28 <td align="center" bgcolor="#FFFFFF"><%# Eval("Price") %></td> 29 <td align="center" bgcolor="#FFFFFF"><%# Eval("Pic") %></td> 30 </tr> 31 </ItemTemplate> 32 33 </asp:Repeater>
3.在C#代码中编写代码
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 protected void Page_Load(object sender, EventArgs e) 2 { 3 if (!IsPostBack) 4 { 5 MyDBDataContext context = new MyDBDataContext(); 6 var q = context.Car; 7 Repeater1.DataSource = q; 8 Repeater1.DataBind(); 9 } 10 }
然后运行。
eg2:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <form id="form1" runat="server"> 2 <div id="city"> 3 4 <asp:Repeater ID="Repeater1" runat="server"> 5 <ItemTemplate> 6 <a href="Default6.aspx?id=<%# Eval("AreaCode") %>"><%# Eval("AreaName") %></a> 7 </ItemTemplate> 8 </asp:Repeater> 9 <br /> 10 <br /> 11 <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="Default6.aspx">返回</asp:HyperLink> 12 </div> 13 </form>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 private string parent = "0001"; 2 private MyDBDataContext _Context = new MyDBDataContext(); 3 protected void Page_Load(object sender, EventArgs e) 4 { 5 if (!IsPostBack) 6 { 7 8 if (Request["id"] != null) 9 { 10 parent = Request["id"].ToString(); 11 } 12 //上一级区号等于parent的数据 13 var query = _Context.ChinaStates.Where(p => p.ParentAreaCode == parent); 14 15 Repeater1.DataSource = query; 16 Repeater1.DataBind(); 17 18 //设置“返回”超链接的地址 19 SetReturnHREF(); 20 } 21 } 22 23 private void SetReturnHREF() 24 { 25 if (parent == "0001") 26 { 27 HyperLink1.Enabled = false; 28 } 29 else 30 { 31 HyperLink1.Enabled = true; 32 33 var query = _Context.ChinaStates.Where(p=>p.AreaCode == parent); 34 if (query.Count() > 0) 35 { 36 string p = query.First().ParentAreaCode; 37 HyperLink1.NavigateUrl = "Default6.aspx?id="+p; 38 } 39 40 } 41 }
(先这样吧,困了。)