Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > C#/.NET入门教程

ASP.NET入门教程:控件与母板的区别分析

来源:中文源码网    浏览:188 次    日期:2024-04-28 16:06:17
【下载文档:  ASP.NET入门教程:控件与母板的区别分析.txt 】


ASP.NET笔记之 控件与母板的区别分析
1、ASP.NET的好坏处
CodeBehind:“前aspx后cs”的模式,(1、aspx(控件定义、html、css)控制页面长相,cs控制程序逻辑aspx就是模板引擎,不需要再去寻找第三方的模板引擎(2、aspx中调用cs的成员级别必须是protected或者public不能是private因为当前this执行的是当前的子类(通过反编译查看)
2、
Literal: Mode属性,避免XSS攻击
TextBox:AutopostBack=true 焦点离开Textbox提交表单ASP.NET中经常不直接调用submit而是调用_doPostBack方法提交表单TestChanged事件配合AutopostBack可以点击submit自动提交表单更新输入文本
Button:OnCLientClickreturn confirm("真的要执行吗?")
3、Button、LinkButton、ImageButton让多个控件共享一个处理函数:command属性设置响应函数CommandArgument=“daomul”(命令参数传参数)CommandName=“Remove”(名字)
4、
Panal:弄成"高级设置"(fieldset)的渲染形式:GroupingText=“高级设置”
HyperLink:引用站内内部资源的时候很方便(自动转换路径)NavigateUrl属性
5、
FileUpload:FileUploadl.HasFile:用户是否选择了文件FileUploadl.SaveAs("根目录全路径"):Server.Mapath或者VirtualPathUtility.ToAbsolute都可以path=Server.Mapath(“~/upload/”);
漏洞:(只允许上传指定类型的文件)
System.IO.File.Delete(Server.Mapath.("~/upload/"));System.IO.File.ReadAllText(Server.Mapath.("~/upload/"));
6、实例:注册界面
Register.aspx复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Register.aspx.cs" Inherits="登陆注册.Register" %>




密码强度:
注册用户 Register.apsx.cs复制代码 代码如下:using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using 登陆注册.DAL.DataSet1TableAdapters; using System.Text.RegularExpressions; namespace 登陆注册 { public partial class Register : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnRegister_Click(object sender, EventArgs e) { //服务器版测试是否符合要求:邮箱饿坏密码 if (txtPassWord.Text != txtPassWord_Second.Text) { LabelErrorMsg.Text = "密码不一致!"; LabelErrorMsg.Visible = true; return; } Regex reEmail = new Regex(@".+@.+"); if (!reEmail.IsMatch(txtEmail.Text)) { LabelErrorMsg.Text = "Email格式不正确!"; LabelErrorMsg.Visible = true; return; } LabelErrorMsg.Visible = false; T_userInfoTableAdapter adapter = new T_userInfoTableAdapter(); if (adapter.GetDataByUserName(txtUserName.Text).Count >= 1) { errorMsg.Visible = true; errorMsg.Text = "用户名重复,请重新输入!"; return; } long userId=Convert.ToInt64(adapter.InsertUser(txtUserName.Text, txtPassWord.Text, txtEmail.Text)); //读取Session登陆信息 Session["登陆ID"] = userId; Session["登陆标记"] = true; //设置可以传参数的公共跳转页面 //作用1:告诉用户注册成功,作用2:防止用户点击刷新重复提交数据 Response.Redirect("target.aspx?Msg=注册成功即将转向登陆界面&RedirectURL=login.aspx"); } protected void txtUserName_TextChanged(object sender, EventArgs e) { T_userInfoTableAdapter adapter = new T_userInfoTableAdapter(); if (adapter.GetDataByUserName(txtUserName.Text).Count >= 1) { errorMsg.Visible = true; errorMsg.Text = "用户名重复,请重新输入!"; } else{ errorMsg.Visible = false; } } } }其中要用到的正则表达式:
插入数据记录:INSERT INTO [dbo].[T_userInfo] ([sUserName], [sPassWord], [Email]) output Inserted.Id VALUES (@sUserName, @sPassWord, @Email)
(1、增加SQL语句,
(2、增加一个output Insert.Id 在Insert语句当中(3、设置ExecuteMode属性为Scalar
7、三种控件的区别:html控件、服务端控件。runat=server 的控件(最好)
a1.Attributes("aaa")="建属性赋值";
8、验证控件
(1、 RequiredFieldVal:设置哪个控件和显示名称(还有CausesValdation焦点移开) -----为空初始值:InitleValue(请输入关键字、包括下拉框的初始值)
Validator共性!!!!!!!!!!if(!IsValid){return;}if(this.IsValid){//防止跳过客户端校验IsValid表示页面中所有Validator是否都通过了label1.Text="";}else{label1.Text="客户端填写不足或有错误";}
ValidstionGroup 分组(表单可以在页面内单个组提交,而不关联其他组)相同于按钮的name
(2、RangeValidator:范围验证最大最小比较 Date.Now.()baidu下
(3、只有RequiredFieldValidator可以对字段为空进行验证
(4、CompareValidator:比较验证(类型校验、与其他控件比较、) ControlToCompare设置为要比较的控件
RegularExpression:
VaildationExpression 正则表达式验证
CustomVaildate自定义控件验证
ServerValidate服务端校验代码 ClientVlidtionFunction
(5、ValidationSummary汇总错误信息text 和ErrorMsg的区别,ErrorMsg就是用于ValidationSummary中,而text则是直接显示在验证控件位置
母版:
//操作模板页的控件Button btn=(Button)this.Master.FindControl("Button1");btn.Visible=!btn.Vissble;
this.Master.Mapath();
虚拟路径转化为客户端访问的路径(不是服务端控件):src="<%=ResolveClientUrl%>"
this.ResolveClientUrl();ResolveClientUrl:考虑当前页面的路径ResolveUrl:生成一个从根开始的路径

相关内容