为什么多次跳到其他网页时候是假page.iswordpress post pageback

asp.net web页面的第一次请求与第二次请求有什么区别?_百度知道
asp.net web页面的第一次请求与第二次请求有什么区别?
提问者采纳
当使用者第一次浏览这个网页时Page,所以此时页面加载时.aspx,再跳转到这个页面.aspx&quot, EventArgs e)
if (P).IsPostBUserLogin.aspx页面点击按钮;UserLogin.Redirect(&).aspx&UserLogin.IsPostBack 是用来检查目前网页是否为第一次加载,就是执行else语句了,这样就执行了R
}P然后你以后再点击,那么你只有在第一次浏览这个页面的时候.IsPostBack)
Response,然后UserLogin,会执行Response.Redirect(&quot.IsPostBack 会传回False,P)!Page.Redirect(&如果你用.IsPostBack为ture,不是第一次浏览这个网页时就传回True.aspx&quot!你开始是在这个页面点击按钮跳转到UserL
returnprotected void Page_Load(object sender
提问者评价
其他类似问题
其他2条回答
第一次请求,Form不会有值,不会触发服务端控件事件,不会加载viewstate
第一次请求页面加载慢,之后就快了
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁[ASP.NET-I] VS2008 ASP.NET网站 页面基础(控件拖拉)练习I - 阳荷塘
- 博客频道 - CSDN.NET
1229人阅读
笔记不涉及数据库SQL Server 2008的使用,随意练习一下控件使用(认识页面布局和后台代码)。
[VS2008 数据库 IIS网站服务器]
首次启动时选中进行设置。建立的网站项目拥有微型网站服务器的功能,项目目录就是一个站点。当运行网站项目时,浏览器会运行项目下的文件,将其运行结果显示在浏览器之上。利用就可以进行网页学习,当需要数据库时可再进行与的配置,当要提供他人访问网站功能时再进行与二者的配置。个人理解
网页由界面元素及逻辑代码组成。界面元素指网页界面上的控件(如文本输入框,按钮),逻辑代码指当点击诸如按钮后会调用的代码。像按钮这样的控件,都会有一个事件响应函数。
[网页编辑练习]
1. 嵌入式编码
用管理员身份打开,文件新建网站网站,选择网站项目目录(站点目录)。
(1)使用控件编辑网页页面
打开Default.aspx文件,切换到设计模式中,就可以再工具箱中拖需要的控件到设计模式页面之上了。这些控件除了具有特定的功能(如可以再TextBox中输入文本)外其内部封装了一些属性和函数,可以通过控件的id来访问它们。
拖入控件:
在设计模式中拖入了个(并在其中两个写了文字),一个及一个按钮。每往页面中拖入一个控件时都可以选中此控件,然后右键选择属性,再属性框内设置每个控件的属性,如,标题等。标题会在页面直接显示(如按钮的确定),比较重要,在编码时可能会用到。
此时,再切换到Default.aspx的源码模式中,就可以各控件对应的源代码。在源码模式下直接编写这些代码和在设计模式下拖控件是等效的。以下是拖入控件后在Default.aspx文件中的&body&…&/body&标记对中增加的代码:
你最喜欢哪个城市?&/div&
输入你最喜欢的城市吧:&asp:TextBox ID=&TextInputBox1& runat=&server&&&/asp:TextBox&
&asp:Button ID=&Button1& runat=&server& Text=&确定& /&
&div id=&City&&
当运行项目时,在浏览器之上可以呈现刚拖入的控件和文字,但点击确定按钮时什么也不会发生(本来什么也没做)。如果要想在点击确定按钮后发生点什么,那就需要为按钮设置一个事件和此事件对应的响应函数。
(2)为控件编写响应函数
在Default.aspx设计模式下双击按钮,将在Default.aspx.cs生产的函数剪切到Default.apsx文件中,并为这个函数新建一个&script&…&/script&标记对,并将其放在&head&…&/head&标记对中,然后为其编写如下代码:
&script language=&C#& runat=&server&&
protected void Button1_Click(object sender, EventArgs e)
City.InnerHtml = &&br&& + TextInputBox1.Text + &?& + &得了吧,这里连一家便宜的饭店都没有!&;
就是设计模式界面的最后一个控件的,是的一个内部属性。是输入框控件的。表示用语言来编写标记对的代码。这个函数在确定按钮被点击时被调用,查看按钮对应的源码,对按钮设置的事件就是事件,而这个函数就是点击它的事件响应函数。
添加事件响应函数后再运行一下这个项目,点击浏览器上的确定按钮后的效果:
编码方式有多种,像后台编码(在文件中编码)和嵌入式编码(在文件中的某个标记对中编码)。
基础知识可在的控制台程序下进行编程练习。
(1)C#的诞生
微软为了摆脱诞生为其带来的困扰,就设计和核心语言来进军互联网。由和衍生而来,是基于和的。如果想要作为一个专业开发人员,不但要掌握的基础知识还要掌握的专用技术。
(2)C#程序结构
一个控制台的程序结构:
引入命名空间()、在命名空间内()定义(继承)类和,然后在命名空间的函数中调用这些类。
[1]循环语句
中多了一个,用法跟脚本中的用法相似。其余语法跟一致。
的结构体由数据成员和函数成员两部分构成。可以用等关键字声明成员访问属性。创建结构体对象时用。非指针结构体变量访问结构体成员跟一样。
类跟类的使用思想一致。中可改写的函数用,用。构造函数跟一致,跟类同名且可重载。也具有相同的继承方式。对的了解很表面,所以和面向对象的比较也是个人浅层次的
3用户登录(Response)
(1)新建工程
用新建一个网站项目。在解决方案资源管理器中选中项目,文件新建窗体,这样就会默认创建,勾选将代码放在单独的文件中,这样就会再新建其后台文件。选中项目,右键新建名为的文件夹,往此文件夹内添加一张图片。
(2)网页设计
将登录界面控件放在文件的设计模式中。
(2)后台编码
在设计模式中双击“看不清楚”,“登录”按钮,会在中生成对应的按钮点击事件响应函数。
[1] 随机验证码的生成
//自定义随机返回字符串函数
public string random(int n)
string strchar = &A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 1 2 3 4 5 6 7 8 9 0&;
//将strchar以空格分开得到的字符保存在array数组中
string[] array = strchar.Split(' ');
string code = &&;
int temp = -1;
Random rand = new Random();
for(int i = 0; i & ++i)
if(temp != -1)
rand = new Random(i * temp * unchecked( (int)DateTime.Now.Ticks ) );
int t = rand.Next(61);
code += array[t];
类表示随机数生成器,一种能够产生满足某些随机性统计要求的数字序列。的构造函数,使用不同的值可以可以产生不同的随机值。的返回一个小于的非负随机数。
[2]页面首次加载及点击看不清楚按钮时调用随机数生成函数
//如果是第一次访问Default.aspx页面,则为验证码(code)赋值一个随机码
protected void Page_Load(object sender, EventArgs e)
if (!Page.IsPostBack)
code.Text = random(4);
//当看不清验证码时,会再更换一下验证码
protected void change_code_Click(object sender, EventArgs e)
code.Text = random(4);
[3]点击登录按钮跳转到另一个页面
//当点击登录按钮时,切换到另一个页面
protected void login_Click(object sender, EventArgs e)
//接受用户输入的为标准小的TextBox
if (in_user_name.Text.Trim() == && || in_pwd.Text.Trim() == &&)
this.ClientScript.RegisterStartupScript(this.GetType(),&&,&&script&alert('没有填写用户名或密码')&/script&&);
//验证码不匹配
if (in_code.Text != code.Text)
this.ClientScript.RegisterStartupScript(this.GetType(), &&, &&script&alert('验证码不匹配,请重新填写')&/script&&);
code.Text = random(4);
//是seven账户登录
if (in_user_name.Text == &seven& && in_pwd.Text == &seven&)
Response.Redirect(&Default2.aspx?userName=& + in_user_name.Text + &&);
this.ClientScript.RegisterStartupScript(this.GetType(), &&, &&script&alert('用户或密码错误')&/script&&);
指本文件页面。使用属性获取一个可用于管理脚本、注册脚本和向网页添加脚本的对象。方法向对象注册启动脚本。将客户端定向到新的并指定该新。
[4]重定向页面后台代码
中重定向页面为。设计页面(写点文字)并编写后台代码。后台()代码:
public partial class Default2 : System.Web.UI.Page
protected void Page_Load(object sender, EventArgs e)
if (!Page.IsPostBack)
if (Request.QueryString[&username&] != null)
content_show.Text = &wellcome:& + Request.QueryString[&username&];
content_show2.Text = &Now is:& + DateTime.Now.ToString();
Response.Redirect(&Default.aspx&);
Request.QueryString[&username&]得到该页面Default2.aspx的“网址名”。是Default.aspx跳转时传递过来的(&Default2.aspx?userName=& + in_user_name.Text +&&)。
(3)运行结果
点击登录按钮跳转的页面:
(4)记录登录错误次数
用Session来记录用户登录的错误次数。在用户第一次访问登录页面时定义一个Session对象(Session[“login”]并将其初始化为0。然后每登录一次就使用int.parse()函数将Session[“login”].ToString()转化为数字再增1并重新赋值给Session[“login”]和一个变量,判断变量的值是否超过了登录次数限制来决定重定向到其它网页。
用新建网站项目工程,新建文件夹用来存放文件,新建及。
(1)Session保存信息购物车模拟
[1]页面设计
[2]后台代码
//第一款Mp3被加入购物车
protected void add_1_Click(object sender, EventArgs e)
Session[&mp31&] = &Mp3_1,价格:1¥&;
if (Session[&mp31&] != null)
this.ClientScript.RegisterStartupScript(this.GetType(), &&, &&script&alert('成功添加商品到购物车')&/script&&);
//第二款Mp3加入购物车
protected void add_2_Click(object sender, EventArgs e)
Session[&mp32&] = &Mp3_2,价格:2¥&;
if (Session[&mp32&] != null)
this.ClientScript.RegisterStartupScript(this.GetType(), &&, &&script&alert('成功添加商品到购物车')&/script&&);
//第一款手机被加入到购物车
protected void Button2_add_1_Click(object sender, EventArgs e)
Session[&phone1&] = &phone_1,价格:3¥&;
if (Session[&phone1&] != null)
this.ClientScript.RegisterStartupScript(this.GetType(), &&, &&script&alert('成功添加商品到购物车')&/script&&);
////第二款手机被加入到购物车
protected void Button2_add_2_Click(object sender, EventArgs e)
Session[&phone2&] = &phone_2,价格:5¥&;
if (Session[&phone2&] != null)
this.ClientScript.RegisterStartupScript(this.GetType(), &&, &&script&alert('成功添加商品到购物车')&/script&&);
protected void Page_Load(object sender, EventArgs e)
if (!Page.IsPostBack)
Label1.Text = & 您选择的商品如下:& + &&br&&;
Label1.Text += Session[&mp31&] + &&br&&;
Label1.Text += Session[&mp32&] + &&br&&;
Label1.Text += Session[&phone1&] + &&br&&;
Label1.Text += Session[&phone2&];
Session.Clear();
[3]运行结果
单这么用是不能实现购物车的,如对多次添加某个商品到购物车,购物车里只会有一件这样的商品,这都是的特性所致。
(2)Session使用方法
提供了一种把信息保存在服务器内存中的方式。他能储存任何数据类型,包含自定义对象。保存的数据是跨页面全局型的,可以跨页面访问,每个中只存储唯一的数据。简单的使用:首先设定然后你在会话还没结束的情况下,你又设定这样这个没变,然而池中的数据则被覆盖。此时的值就是“”,而不是其它。
对象用来在客户端保存信息。通常和及对象联用。对象用来向客户端输出信息;对象用来读取客户端的信息,如填入表单的数据,保存在客户端的的信息。
(1)页面设计
的属性要一致才能保证同只有选中的属性为。
(2)后台代码
页面第一次加载
protected void Page_Load(object sender, EventArgs e)
//第一次到此页面
if (!Page.IsPostBack)
HttpCookie cookie = new HttpCookie(&radio&); //Request.Cookies[&radio&];
if (cookie == null)
cookie.Values.Add(&radio&, &红烧肉&);
Response.Cookies.Add(cookie);
cookie.Expires = DateTime.Now.AddDays(1);
switch (cookie.Values[&radio&])
//radioButton's Text
case &红烧肉&:
//radiobutton's id
v1.Checked =
case &水煮鱼&:
v2.Checked =
case &地三鲜&:
v3.Checked =
case &丝瓜炒蛋&:
v4.Checked =
v4.Checked =
protected void B_select_Click(object sender, EventArgs e)
HttpCookie cookie = new HttpCookie(&radio&);// Request.Cookies[&radio&];
if (v1.Checked)
cookie.Values.Set(&radio&, &红烧肉&);
if (v2.Checked)
cookie.Values.Set(&radio&, &水煮鱼&);
if (v3.Checked)
cookie.Values.Set(&radio&, &地三鲜&);
if (v4.Checked)
cookie.Values.Set(&radio&, &丝瓜炒蛋&);
Response.Cookies.Add(cookie);
Label1.Text = &用cookie保持的信息为:& + Request.Cookies[&radio&].Values[0].ToString();
(3)运行结果
当选择另一个时,的属性状态立即改变,但需要点击两次选择按钮的值才会被更新到网页上。不知为何。
用新建网站()项目,新建文件夹,添加存在的文件进去。
(1)页面设计
在的设计模式的工具箱中拖入中的如上控件()。在源码模式下都要为每个控件添加属性使其成为服务器控件。编写控件的后台代码时,指定的函数。
(2)后台代码
按钮的后台代码:
protected void D_show_book(object sender, EventArgs e)
image.Src = &images/& + Select1.V
为下的控件的。为下的控件。为控件下拉中添加选项的代码为:
&select id=&Select1& name=&D1& runat=&server&&
&option value=&html1.JPG& &《西游记》&/option&
&option value=&html2.JPG& &《红楼梦》&/option&
使用控件创建表格
对象用来创建行。对象用来创建表格的单元格(如行的列)。
(1)页面设计
将每个控件的加上属性。
(2)后台代码
添加命名空间System.Web.UI.HtmlControls:using System.Web.UI.HtmlC
protected void show_table(object sender, EventArgs e)
int row, col, i,
row = Convert.ToInt32(Select1.Value);
col = Convert.ToInt32(Select2.Value);
for (i= 0; i & ++i)
HtmlTableRow tRow = new HtmlTableRow();
for (j = 0; j & ++j)
HtmlTableCell tCol = new HtmlTableCell();
tCol.Controls.Add(new LiteralControl(&[& + i + &,& + j + &]&));
tRow.Cells.Add(tCol);
table.Rows.Add(tRow);
table.Visible =
运行结果:
(1)页面设计
选择的属性为。两个的都为。在大的内再添加两个位置并列的,添加的都设置visible=&false&runat=&server&两个属性。
(2)后台代码
确认按钮的后台代码:
protected void select_sure_Click(object sender, EventArgs e)
if (table.Checked == true)
div_table.Visible =
div_dary.Visible =
else if((dary.Checked == true) && (table.Checked == false))
div_dary.Visible =
div_table.Visible =
运行结果:
用()来上传文件(常见格式图片和记事本文件都可以上传)。用新建网站项目,新建文件夹用来存放上传的文件。
(1)页面设计
属下的代码都要添加属性使之成为服务器控件。
(2)后台代码
主要利用对象来获取文件的路径、文件名、文件大小及文件类型。上传文件的点击事件响应函数代码:
protected void uploadFileButton_Click(object sender, EventArgs e)
if (File1Upload.PostedFile.ContentLength & 0)
string upload = Server.MapPath(&upload\\&);
int lastIndexOf = File1Upload.PostedFile.FileName.LastIndexOf(&\\&);
string fileName = File1Upload.PostedFile.FileName.Substring(lastIndexOf + 1);
string uploadPath = upload + fileN
File1Upload.PostedFile.SaveAs(uploadPath);
show_file_infor.InnerHtml = &源文件位置:& +
File1Upload.PostedFile.FileName +
&&br&文件大小:& + File1Upload.PostedFile.ContentLength + &kb&br&& +
&文件类型:& + File1Upload.PostedFile.ContentType +
&&br&上传文件保存位置:& + uploadP
catch (Exception ex)
show_file_infor.InnerHtml = &ERROR: & + ex.Message.ToString();
show_file_infor.InnerHtml = &文件不存在,上传失败&;
运行结果:
[ - 16.57]
(1)页面设计
选中拖入的右键,选择其属性,在弹出的对话框中可以添加和删除成员,填写好成员的属性。默认一个被选中(用于页面第一次加载时赋值给)。
(2)后台代码
protected void Page_Load(object sender, EventArgs e)
if (!Page.IsPostBack)
//图片内容默认路径
Image1.ImageUrl = &~/images/html1.JPG&;
//Label控件默认值
Label1.Text = RadioButtonList1.SelectedItem.T
protected void Button1_Click(object sender, EventArgs e)
if (RadioButtonList1.SelectedIndex & -1)
foreach(ListItem rList in RadioButtonList1.Items)
Label1.Text = rList.T
int intImage = RadioButtonList1.SelectedI
if(intImage == 0)
Label1.Text = RadioButtonList1.SelectedItem.T
Image1.ImageUrl = &~/images/html1.JPG&;
Label1.Text = RadioButtonList1.SelectedItem.T
Image1.ImageUrl = &~/images/html2.JPG&;
动态修改字体属性
(1)页面设计
选择和控件的属性,在弹出的对话框中添加成员,并默认的某个成员被选中()。将的设置相同,让同时只有一个控件被选中,以区别和控件的用途。将每个控件的属性设置为,这样才能进入控件的事件响应函数。和的事件类型为。
(2)后台编码
在页面设计中双击(也可以在文件中,在每个控件的属性中手动添加每个控件的事件响应函数)每个控件,在文件中会生成控件某事件对应的时间响应函数(以控件命名)。到对应的函数中编码。
//字体选择响应函数
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
if(DropDownList1.SelectedItem.Text == &大字体&)
Label1.Font.Size = FontUnit.L
Label1.Font.Size = FontUnit.S
//选择粗体CheckBox时的事件响应函数
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
if (CheckBox1.Checked)
Label1.Font.Bold =
Label1.Font.Bold =
//选择斜体CheckBox的事件响应函数
protected void CheckBox3_CheckedChanged(object sender, EventArgs e)
if(CheckBox3.Checked)
Label1.Font.Italic =
Label1.Font.Italic =
//切换到红色RadioButton被选中
protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
if (RadioButton1.Checked)
Label1.ForeColor = Color.R
//切换到黄色RadioButton被选中
protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
if (RadioButton2.Checked)
Label1.ForeColor = Color.O
//切换到蓝色RadioButton
protected void RadioButton3_CheckedChanged(object sender, EventArgs e)
if(RadioButton3.Checked)
Label1.ForeColor = Color.B
//选择下划线和删除线的CheckBoxList
protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
if (CheckBoxList1.Items[0].Selected)
Label1.Font.Underline =
Label1.Font.Underline =
if (CheckBoxList1.Items[1].Selected)
Label1.Font.Strikeout =
Label1.Font.Strikeout =
运行结果:
必要时,手动设置控件的事件与事件响应函数的对应关系。
12用户注册[使用验证控件]
(1)页面设计
为每个验证控件选择验证对象(),设置其错误消息()。为注册账号的文本框的的创建自定义表达式:;邮箱文本框的的的值选择“电子邮箱地址”。
(2)后台代码
提交按钮的点击事件响应函数:
//提交按钮点击响应函数
protected void Button1_Click(object sender, EventArgs e)
this.ClientScript.RegisterStartupScript(this.GetType(), &&, &&script&alert('恭喜注册成功,您的用户名是:& + TextBox1.Text.ToString() + &
||密码:& + TextBox2.Text.Trim() + &
||邮箱:& + TextBox4.Text + &')&/script&& );
运行结果:
带节日提示日历
(1)页面设计
往的设计模式中的控件中拖入一个控件,可右键设置各属性。
(2)后台代码
string[][] holidays = new string[13][];
protected void Page_Load(object sender, EventArgs e)
for (int i = 0; i & 13; ++i)
holidays[i] = new string[32];
holidays[1][1] = &元旦&;
holidays[2][14] = &情人节&;
holidays[3][7] = &女生节&;
holidays[4][1] = &愚人节&;
holidays[5][1] = &劳动节&;
holidays[6][1] = &儿童节&;
holidays[7][1] = &建党节&;
holidays[8][1] = &建军节&;
holidays[9][9] = &重阳节&;
holidays[10][10] = &国庆节&;
holidays[11][4] = &美好节&;
holidays[12][25] = &圣诞&;
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
if (e.Day.IsOtherMonth)
e.Cell.Controls.Clear();
string Hol = holidays[e.Day.Date.Month][e.Day.Date.Day];
if(Hol !=string.Empty)
e.Cell.Controls.Add(new LiteralControl(&&br& &span Style='color:size:2'&& + Hol + &&/span&&));
[ - 16.02]
14创建Web用户控件
创建的Web用户控件就是VS2008控件的组合。
以管理员身份打开VS2008,新建 && 网站 && ASP .NET。在解决方案资源管理器中选中项目工程名,右键 && 添加新项 && Web用户控件,在项目工程下生成WebUserControl.ascx文件(包含其后台文件WebUserControl.ascx.cs)。切换到WebUserControl.ascx文件的设计模式中,往WebUserControl.ascx中拖控件以创建一个用户控件。双击控件的后台代码写在了WebUserControl.ascx.cs中。
切换到Default.aspx的设计模式下,将WebUserControl.ascx直接拖入就可以用创建的Web用户控件了,用户控件的所有子控件都保持着原先的功能,事件响应函数为WebUserControl.ascx.cs中对应的函数。运行:
15站点导航控件
以管理员身份启动VS2008,新建 && 网站 && ASP .NET。为项目新建一个名为movies的文件夹,为此文件夹新建3个Web窗体文件。
(1) SiteMapPath控件
往每个页面的设计模式下添加一个“导航”下的SiteMapPath控件(可选择其套用格式)。
(2)站点地图
右键项目名称&& 添加新项 && 站点地图,编写Web.sitemap内容如下:
&?xml version=&1.0& encoding=&utf-8& ?&
&siteMap xmlns=&/AspNet/SiteMap-File-1.0& &
&siteMapNode url=&Default.aspx& title=&主页&
description=&主-页&&
&siteMapNode url=&~/movies/Default.aspx& title=&movies首页&
description=&movies-首页&&
&siteMapNode url=&~/movies/Default2.aspx& title=&movies喜剧&
description=&movies-喜剧&&
&siteMapNode url=&~/movies/Default3.aspx& title=&movies喜剧周星驰&
description=&movies喜剧-周星驰&&
&/siteMapNode&
&/siteMapNode&
&/siteMapNode&
&/siteMapNode&
&/siteMap&
&siteMapNode&…&/siteMapNode&对标记网页关系,嵌套在某对&siteMapNode&…&/siteMapNode&内的网页在SiteMapPath控件中就显示在后面。运行嵌套在最里面的网页看SiteMapPath的内容:
当前网页为Default3.aspx,点击movies喜剧,movies首页,主页会对应的跳转到movies文件下的Default2.aspx,Default.aspx及Default.aspx网页面。
(1)母版设计
以管理员身份启动VS008。新建 && 网站 && ASP .NET。在解决方案资源管理器中选中项目工程名,右键 && 添加新项 && 母版页。在母版页的设计模式下设计母版页,将母版页的ContentPlaceHolder给留出来给用户用。
编辑TreeView的Node属性会得到TreeView的具体内容。TreeView下的每个内容都可以对应一个图标和对应的网页链接。
(2)添加母版
选中项目名右键 && 添加新项 && Web窗体(勾选选择母版页)&&选择母版,确定。
然后再在新建的Web窗体的ContentPlaceHolder中设计属于自己的网页。
[ - 19.57]
17 创建和读取XML文件
(1)创建XML文件
在VS2008的Web文件中新添一个XML文件。编写XML文件内容()如下:
&?xml version=&1.0& encoding=&utf-8& ?&
&bookstore&
&book category=&CHILDREN&&
&title&Harry Potter&/title&
&author&J K. Rowling&/author&
&year&2005&/year&
&price&29.99&/price&
&book category=&WEB&&
&title&Learning XML&/title&
&author&Erik T. Ray&/author&
&year&2003&/year&
&price&39.95&/price&
&/bookstore&
(2)使用XML控件读取XML文件内容
往Default.aspx中拖入一个XML控件。然后切换到Default.aspx的源码模式下,为此XML控件指明XML源文档:“&fieldset&&asp:XmlID=&Xml1&runat=&server&DocumentSource=&~/XMLFile.xml&&&/asp:Xml&
&/fieldset&”就可以了。运行程序,XML的文件内容就可以再浏览器中显示出来。(没有换行)
18 文件管理
使用文件管理类(File类)需要添加命名空间:using System.IO;。
(1)页面布局
(2)后台代码
protected void Page_Load(object sender, EventArgs e)
if (!Page.IsPostBack)
InitFolderInfor();
private void InitFolderInfor()
string strFileUplodPath = &UpFile&;
//如果上传文件夹不存在则自己创建一个
if (!Directory.Exists(Server.MapPath(strFileUplodPath)))
Directory.CreateDirectory(Server.MapPath(strFileUplodPath));
//虚拟路径转换为物理路径
string strFilePath = Server.MapPath(strFileUplodPath);
//声明文件夹已经使用容量
double iFolderCurrentSize = 0;
//获取文件夹的所有内容
FileInfo[] arrFiles = new DirectoryInfo(strFilePath).GetFiles();
//操作ListBox1控件
ListBox1.Items.Clear();
foreach (FileInfo fi in arrFiles)
iFolderCurrentSize += Convert.ToInt32(fi.Length / 1024);
ListBox1.Items.Add(fi.Name);
Label2.Text = string.Format(&文件已经使用容量:{0}KB&, iFolderCurrentSize);
//在listBox1中选择发生变化时
protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
string strPath = Server.MapPath(&UpFile&);
string fileName = ListBox1.SelectedV
string filePath = strPath + &/& + fileN
FileInfo info = new FileInfo(filePath);
Label1.Text = string.Format(&文件大小:{0}字节&br&&br&上传时间:{1}&br&&, info.Length, info.CreationTime);
TextBox1.Text = fileN
TextBox2.Text = fileN
//上传文件按钮
protected void Button1_Click(object sender, EventArgs e)
if (FileUpload1.HasFile)
string path = Server.MapPath(&UpFile&) + &/& + FileUpload1.FileN
if (!File.Exists(path))
FileUpload1.SaveAs(path);
InitFolderInfor();
this.ClientScript.RegisterStartupScript(this.GetType(), &&, &&script&alert('文件上传成功')&/scrpt&&);
//删除文件LinButton点击响应函数
protected void LinkButton1_Click(object sender, EventArgs e)
string strPath = Server.MapPath(&UpFile&) + &/& + ListBox1.SelectedV
File.Delete(strPath);
this.ClientScript.RegisterStartupScript(this.GetType(), &&, &&script&alert('删除成功')&/script&&);
InitFolderInfor();
TextBox1.Text = string.E
TextBox2.Text = string.E
catch (Exception ex)
this.ClientScript.RegisterStartupScript(this.GetType(), &&, &&script&alert(' &+ex.Message +& ')&/script&&);
//点击修改文件名称LinButton按钮
protected void LinkButton2_Click(object sender, EventArgs e)
string path = Server.MapPath(&UpFile&);
string path1 = path + &/& + ListBox1.SelectedV
string path2 = path + &/& + TextBox2.T
File.Move(path1, path2);
ListItem li = ListBox1.SelectedI
li.Text = TextBox1.T
li.Value = TextBox1.T
TextBox1.Text = string.E
this.ClientScript.RegisterStartupScript(this.GetType(), &&, &&script&alert('修改成功')&/script&&);
运行结果:
19 缓存替换
使用substitution控件。
(1)设置页面缓存时间
在Default.aspx页面的源码模式下加入以下语句:
&%@ OutputCache Duration=&5& VaryByParam=&none&%&
此语句表示Default.aspx页面的输出每5秒才更新一次。而在Default.aspx中的substitution控件内容则时时更新。
(2)页面设计
页面设计对应的源码(乱,可对应控件拾关键部分):
以下时间是使用Substitution控件实现缓存后的替换:&/p&
&form id=&form1& runat=&server&&
&asp:Substitution ID=&Substitution1& runat=&server&
MethodName=&getNowTime&/&
以下事件显示使用页面输出缓存,缓存的时间为5秒:&/p&
&%=DateTime.Now.ToLongDateString()%&
&%=DateTime.Now.ToLongTimeString() %&
&p align=&left&&
&asp:Button ID=&Button1& runat=&server& Text=&刷新页面& /&
&/body&&span style=&font-size:14&&
(3)substitution控件对应的后台代码
public static string getNowTime(HttpContext context)
return DateTime.Now.ToLongDateString() + DateTime.Now.ToLongTimeString();
运行结果:
Substitution控件中显示的时间时刻更新(间隔一秒),而页面输出则是5秒一次。
[ - 18.06]
笔记源自看视频的实践总结。
WebFNoteI Over.
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:451477次
积分:8131
积分:8131
排名:第967名
原创:343篇
译文:15篇
评论:241条
(1)(23)(2)(2)(10)(21)(20)(9)(10)(17)(11)(10)(6)(6)(12)(8)(17)(12)(6)(15)(23)(11)(9)(16)(15)(10)(3)(12)(1)(16)(14)(12)
--------老师--------

我要回帖

更多关于 jquery post提交跳转 的文章

 

随机推荐