Asp.NET笔记

第三章
一、Response对象:
用户传输数据到客户端浏览器
Write():用于向当前HTTP响应流写入文本,使其成为返回页面的一部分
eg:
string name = this.txtName1.Text;
Response.Write("您输入的名字是:" + name); //页面中会显示括号中的文字
Response.Write("<script>alert('弹窗消息')</script>");//可以实现弹窗效果

End():将当前所有缓冲的输出发送到客户端,停止该页的执行,并触发Application对象的EndRequest事件
eg:
Response.End(); //当程序碰到这行代码,后面的页面就不再执行了(页面后面的元素就不加载了)

Redirect():将用户从请求页面重新定向或转到另一页面
eg:
Response.Redirect("http://www.baidu.com");//页面跳转到百度
Response.Redirect("/WebForm2.aspx");//页面会跳转到WebForm2窗体
Response.Redirect("/WebForm2.aspx?name=张三&pwd=123");//页面会跳转WebForm2窗体,并且在Url中附带参数
//参数传值: *.aspx?参数=值 或 *.aspx?参数1=值1&参数2=值2

 

二、Request对象:
用来读取客户端浏览器的数据
1、Request的QueryString属性实现页面传值
  eg:
    Request.QueryString["name"];//获取Url上的参数值*.aspx?name=XXX,得到XXX
    Request.QueryString["password"];//获取Url上的参数值*.aspx?password=XXX,得到XXX
2、Form:使用表单的Post提交获取表单中的控件的值
eg:
  1)、设置提交的表单属性Method="post"
    eg:<form id="form1" runat="server" method="post">
  2)、通过postBackUrl属性实现页面的跳转
    eg:<asp:Button ID="Button1" runat="server" Text="登录" OnClick="Button1_Click" PostBackUrl="~/Main.aspx" />
  3)、在跳转的页面通过Request.Form["表单控件的ID名称"] 获取控件的值
    跳转前的页面中定义文本框:<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
    跳转后的页面中获取文本框的值:string name = Request.Form["txtName"];

QueryString和Form传值的区别:

  1、传值方式区别:QueryString通过跳转的URL参数进行传值

    Form通过Form表单的Post提交进行传值

  2、获取值区别:QueryString通过Url的各个参数名称获取值

    Form通过Form表单各个元素的ID获取值

三、Server对象:

用来提供某些Web服务器端的属性和方法
1、MapPath:将相对路径转换为绝对路径
eg:
转换服务器相对路径(只适用于ASP.NET中的类库)
Server.MapPath("~/images/logo.jpg")
转换根相对路径(从域名之后的/开始截取,需判断是否有虚拟目录)
Server.MapPath("/images/logo.jpg")
转换相对路径(从当前网页开始计算)
Server.MapPath("images/logo.jpg")
得到结果:D:\Asp.Net上课案例\第三章\img\logo.jpg

2、Execute与Transfer方法:在一个网页中包含另一个网页
Execute和Transfer方法均会停止当前页面的执行,并转去执行用户在方法内指定的URL,同时用户的会话状态和任何当前的事务处理状态都将传递给新页面
Execute方法在URL参数指定的页面处理完后,控制权返回给先前的页面或调用此方法的页面,并且从此方法调用后的语句继续执行
Transfer方法在URL参数指定的页面处理完后,控制权不会返回给先前的页面,也不会返回给调用此方法的页面,直到在新页面完成结束

3、HtmlEncode方法和UrlEncode方法:都可以进行字符编码
HtmlEncode:对传入的数据进行HTML解析
Server.HtmlEncode("<b>昨天下雪了</b>");//输出效果<b>昨天下雪了</b>
UrlEncode:对传入的数据进行URL编码
Server.UrlEncode("http://www.baidu.com?wd=今天好开心&pwd=abc123")
//输出效果:http%3a%2f%2fwww.baidu.com%3fwd%3d%e4%bb%8a%e5%a4%a9%e5%a5%bd%e5%bc%80%e5%bf%83%26pwd%3dabc123
UrlDecode:对传入的数据进行URL解码码
Server.UrlDecode(已编码的url));//输出效果:解码恢复原来的http://www.baidu.com?wd=今天好开心&pwd=abc123

四、Application对象
Application对象是内置的ASP.NET对象,Application状态由HttpApplicationState类表示,它包含了所有与应用程序相关的方法和集合
创建一个Application对象后,它就可以在整个程序中使用, Application对象持续到应用程序关闭。

定义方法: Application["UserName"] = "张三";
使用方法: string name = Application["UserName"].ToString();

Lock() 用于防止用户更改 Application 对象的属性,使得首先调用该方法的用户会话拥有应用程序的控制权,从而可以改变应用程序的变量,在锁定释放前其他任何用户都不能编辑应用程序变量。
Unlock() 方法用于释放对应用程序变量的锁定,Unlock() 方法一旦执行,用户就会失去对应用程序的控制权
Tips: 通常在Global文件中的Application_Start事件中定义Application对象,在任何页面中都可以访问Application
Global.asax文件也称为ASP.NET应用程序文件,它是一个用于配置应用程序的设置文件,它主要负责处理Application_Start、Application_End、Session_Start、Session_End等事件

eg:

//先锁定,防止其他用户同时使用你的变量
Application.Lock();
//定义了两个应用程序级别的变量
Application["message"] = string.Empty;
Application["name"] = string.Empty;
//解锁,释放你的控制权,让其他用户也可以访问到此应用程序变量
Application.UnLock();

在其他页面中:
//获取应用程序级别的变量值
string name = Application["name"].ToString();
string message = Application["message"].ToString();

五、Cookie对象
Cookie主要用于在客户端浏览器中保存少量的用户信息
会话级Cookie:不设置有效期,会话结束后失效
HttpCookie cookie = new HttpCookie("UserName", txtUserName.Text);
Response.Cookies.Add(cookie);
持久性Cookie:需要设置有效期,到期后失效
HttpCookie cookie1 = new HttpCookie("passWord", txtPassWord.Text);
cookie1.Expires = DateTime.Now.AddDays(14);
Response.Cookies.Add(cookie1);
获取Cookie
Request.Cookies["UserName"].Value
Request.Cookies["passWord"].Value
注意:1、创建cookie时使用的是Response对象,获取cookie时使用的是Request对象
2、cookie因为编码方式的问题,不能直接记录中文信息,需要借助Server.UrlEncode()进行编码, 用Server.UrlDecode()进行解码

六、Session对象
Session被称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。当会话过期或终止时,服务器会自动清除Session对象
定义:Session: Session["Name"] = "admin";
使用:Session: string name = Session["Name"].ToString();

Session和Cookie的区别:
相同点:都可以用来存储数据,都可以设置有效期
不同点:Session记录在服务端的,Cookie记录在客户端

 

第五章 数据绑定技术
一、数据绑定语法:
用于绑定控件的表达式置于 <%# ......%> 标记之间
1、绑定到属性:<%# 属性名%>
eg: <%= Hello %>:=它是内联引用方式,可以引用C#代码。
<%# 属性名%>:#它可以引用.cs文件中的代码的字段,但这个字段必须初始化后,在页面的Load事件中使用Page.DataBind方法来实现
2、绑定到表达式:<%# (int)Eval(属性名) - (int)Eval(属性名)%>
eg: <%=3*28 %>
<%#3*28 %>

3、绑定到集合:<%# 集合名%>
eg:借助服务器控件,在后台实现绑定
//设置DropDownList数据源
this.DropDownList1.DataSource = 集合;
//执行绑定操作
this.DropDownList1.DataBind();

4、绑定到函数:<%# 方法(参数1,…)%>
eg:<%# "当前时间是:"+DateTime.Now.ToString() %>

5、单向绑定属性:<%# Eval(“字段名”)%>
6、双向绑定属性:<%# Bind(“字段名”)%>

二、数据绑定控件
GridView:
普通列的绑定: <asp:BoundField HeaderText="姓名" DataField="stuName" />

自定义列的绑定:
<asp:TemplateField HeaderText="性别">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("stusex").ToString()=="男"?"帅哥":"美女" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
分页效果的实现:
1、将GridView的AllowPaging属性设置为true。
2、设置PageSize属性指定每页显示的数据行数量
3、触发PageIndexChanging事件
在事件中指定分页索引:this.gv_Student.PageIndex = e.NewPageIndex;
重新绑定数据源: this.gv_Student.DataSource = 数据源表;
this.gv_Student.DataBind();

执行删除、编辑等操作的实现:
1、字段需要是自定义字段<asp:TemplateField> </asp:TemplateField>
2、在<ItemTemplate></ItemTemplate>字段中添加执行操作的控件 ,在控件中设置操作名称CommandName和操作参数CommandArgument属性:
eg: <asp:Button ID="Button1" runat="server" Text="删除" CommandName="del" CommandArgument='<%#Eval("stuid") %>' />
3、触发GridView中_RowCommand事件
①判断操作名称 eg: if (e.CommandName == "del") {}
②获取操作参数 eg: int id = int.Parse( e.CommandArgument.ToString());
③执行具体操作
eg: int num =SqlHelper.NonQueryMethod("delete from StuInfo where stuid=" + id);

 

执行页面跳转带参数:

 eg: <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl= '<%# "WebForm2.aspx?id=" +Eval("stuid") %>' >查看详情</asp:HyperLink>

   eg: <asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl='<%#"~/EditWebForm.aspx?stuid="+Eval("stuid") %>'>编辑</asp:LinkButton>

 

 

 

D:\Asp.Net上课案例\第三章\img\logo.jpg

原文地址:https://www.cnblogs.com/JuneDream/p/14077793.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


数组的定义 Dim MyArray MyArray = Array(1‚5‚123‚12‚98) 可扩展数组 Dim MyArray() for i = 0 to 10
\'参数: \'code:要检测的代码 \'leixing:html或者ubb \'nopic:代码没有图片时默认值
演示效果: 代码下载: 点击下载
环境:winxp sp2 ,mysql5.0.18,mysql odbc 3.51 driver 表采用 myisam引擎。access 2003  不同的地方: 
其实说起AJAX的初级应用是非常简单的,通俗的说就是客户端(javascript)与服务端(asp或php等)脚本语言的数据交互。
<% ’判断文件名是否合法 Function isFilename(aFilename)  Dim sErrorStr,iNameLength,i  isFilename=TRUE
在调用的时候加入判断就行了. {aspcms:navlist type=0 } {if:[navlist:i]<6} < li><a href=\"[navlist:link]\" target=\"_top\">[navlist:name]</a> </li>
导航栏调用 {aspcms:navlist type=0}     <a href=\"[navlist:link]\">[navlist:name]</a>
1.引入外部文件: {aspcms:template src=infobar.html} 2.二级下拉菜单 <ul class=\"nav\">
downpic.asp页面:  <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
Cookies是数据包,可以让网页具有记忆功能,在某台电脑上记忆一定的信息。Cookies的工作原理是,第一次由服务器端写入到客户端的系统中。以后每次访问这个网页,都是先由客户端将Cookies发送到服务器端,再由服务器端
很简单,在需要调用的地方用这种模式 {aspcms:content sort={aspcms:sortid} num=17 order=isrecommend}
网站系统使用ACCESS数据库时,查询时怎么比较日期和时间呢?为什么常常比较出来却是错误的呢?比如早的日期比迟的日期大?
str1=\"1235,12,23,34,123,21,56,74,1232\" str2=\"12\" 问题:如何判断str2是否存在str1中,要求准确找出12,不能找出str1中的1235、123、1232
实例为最新版本的kindeditor 4.1.5. 主要程序: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)
用ASP实现搜索引擎的功能是一件很方便的事,可是,如何实现类似3721的智能搜索呢?比如,当在搜索条件框内输入“中国人民”时,自动从中提取“中国”、“人民”等关键字并在数据库内进行搜索。看完本文后,你就可以发
首先感谢ASPCMS官网注册用户xing0203的辛苦付出!一下为久忆YK网络转载原创作者xing0203的文章内容!为了让小白更加清楚的体验替换过程,久忆YK对原文稍作了修改!
数据库连接: <% set conn=server.createobject(\"adodb.connection\") conn.open \"driver={microsoft access driver (*.mdb)};dbq=\"&server.mappath(\"数据库名\")
第1步:修改plugins下的image/image.js 找到\'<input type=\"button\" class=\"ke-upload-button\" value=\"\' + lang.upload + \'\" />\',
asp函数: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)