把经常需要访问的页面缓存为个
OutPutCache指令:
各参数解释:
* Duration
–页或用户控件进行缓存的时间(以秒计)。在页或用户控件上设置该属性为来自对象的HTTP 响应建立了一个过期策略,并将自动缓存页或用户控件输出。注意该属性是必需的。如果未包含该属性,将出现分析器错误。
* Location
–OutputCacheLocation枚举值之一。默认值为Any。警告包含在用户控件(.ascx文件)中的@OutputCache指令不支持此属性。
* Shared
–一个布尔值,确定用户控件输出是否可以由多个页共享。默认值为false。有关详细信息,请参见备注部分。注意包含在ASP.NET 页(.aspx文件)中的@OutputCache指令不支持此属性。
* VaryByCustom
–表示自定义输出缓存要求的任意文本。如果赋予该属性的值是browser,缓存将随浏览器名称和主要版本信息的不同而不同。如果输入了自定义字符串,您必须在应用程序的Global.asax文件中重写HttpApplication.GetVaryByCustomString方法。
* VaryByHeader
–分号分隔的HTTP 标头列表,用于使输出缓存发生变化。当将该属性设为多标头时,对于每个指定的标头,输出缓存都包含一个请求文档的不同版本。注意设置VaryByHeader属性在所有HTTP1.1 缓存中启用缓存项,而不仅限于ASP.NET 缓存。用户控件中的@ OutputCache指令不支持此属性。
* VaryByParam
–分号分隔的字符串列表,用于使输出缓存发生变化。默认情况下,这些字符串与用GET方法属性发送的查询字符串值对应,或与用POST方法发送的参数对应。当将该属性设置为多参数时,对于每个指定的参数,输出缓存都包含一个请求文档的不同版本。可能的值包括none、*和任何有效的查询字符串或POST参数名称。警告在输出缓存ASP.NET 页时,该属性是必需的。它对于用户控件也是必需的,除非已经在用户控件的@ OutputCache指令中包含了VaryByControl属性。如果没有包含它,则发生分析器错误。如果您不想使缓存内容随任何指定参数发生变化,请将该值设为none。如果要使输出缓存根据所有参数值发生变化,请将属性设置为*。
* VaryByControl
–一个分号分隔的字符串列表,用于更改用户控件的输出缓存。这些字符串代表在用户控件中声明的ASP.NET 服务器控件的ID属性值。注意除非已经包含了VaryByParam属性,否则在用户控件@OutputCache指令中,该属性是必需的。ASP.NET 页中的@ OutputCache指令不支持该属性。








一个 <add name="cache1" duration="5" location="Server" enabled="true"/>就声明了一个缓存方案 ,在页面中只用声明CacheProfile="cache1"就可以只顶某个页面使用某个缓存方案了.
2:关于跨页面值传递:
1: 在button属性中设置PostBackUrl设置成要提交的页面,也就是html时代中fom的action....
父 窗体没什么好说的了,只改个提交的页面就行了,子窗体中如何获得呢? 我是这样做的:










3:页面设置CSS
链入外部样式表是把样式表保存为一个样式表文件,然后在页面中用<link>标记链接到这个样式表文件,这个<link>标记必须放到页面的<head>区内,如下:
<head>
……
<link rel="stylesheet" type="text/css" href="mystyle.css">
……
</head>
上面这个例子表示浏览器从mystyle.css文件中以文档格式读出定义的样式表。rel=”stylesheet”是指在页面中使用这个外部的样式表。type=”text/css”是指文件的类型是样式表文本。href=”mystyle.css”是文件所在的位置。
4:用户自定义控件
*扩展名为.ascx
*页面首不在使用@page标记而是@control标记
*不能独立运行
*用户控件不能包含<html><body><form>标记
将ASP.NET页面转换为用户控件
*1.修改后缀(包括前置文件和后置文件的后缀)
*2.将后置文件声明为继承自@Control而不是@Page
*3.移除所有html,body,form标记
引用用户控件
*在页面中引用用户控件可以使用@Register标记来记录
*@Register标记包含3个标记,TagPrefix,TagName,Src属性
*Src制定用户控件的位置,这里既可以使用相对路径也可以使用绝对路径
*TagPrefix记录用户控件的前缀
*TagName记录用户控件的名称
5: ileUpLoad的路径问题
用FileUpLoad控件上传文件时,要用到FileUpload1.SaveAs(文件路径), 这个路径在根目录下用 string webFilePath = Server.MapPath("image//" + name);就可以了,image是网站根目录下的文件夹. 如果此页面不是根目录那么image就是此目录下的文件夹了而不是跟目录下的文件夹..如过要回到上一级目录就要在文件夹名字前加..//image//
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string name = FileUpload1.FileName;
string type = FileUpload1.PostedFile.ContentType;
string webFilePath = Server.MapPath("image//" + name);
FileUpload1.SaveAs(webFilePath);
this.Label1.Text = type;
Image1.Visible = true;
string path = "image//" + name;
Image1.ImageUrl = path;
}
}
不在根目录
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string name = FileUpload1.FileName;
string type = FileUpload1.PostedFile.ContentType;
string webFilePath = Server.MapPath("..//image//" + name);
FileUpload1.SaveAs(webFilePath);
this.Label1.Text = type;
Image1.Visible = true;
string path = "..//image//" + name;
Image1.ImageUrl = path;
}
}
6: dropdown二级联动的数据库设计:
比如选择省,自动跳转到对应市的二级联动:在市表中的proid字段和省的proid字段是相同的就代表是一个省的,选择的时候就用此字段
proid | proname |
1 | 湖南 |
2 | 湖北 |
cityid | proid | cityname |
1 | 1 | 长沙 |
2 | 1 | 湘潭 |
3 | 2 | 武汉 |
4 | 2 | 襄樊 |
5 | 2 | 黄石 |