.NET进期综合---缓存/关于跨页面值传递/页面设置CSS/用户自定义控件/fileupload的路径问题/dropdown二级联动的数据库设计

  1:缓存:
 把经常需要访问的页面缓存为个
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指令不支持该属性。
 

     < caching >
            
< outputCacheSettings >
                
< outputCacheProfiles >
                    
< add name = " cache1 "  duration = " 5 "  location = " Server "  enabled = " true " />
                  
< add name = " cache2 "  duration = " 5 "  location = " Server "  enabled = " true " />
                
</ outputCacheProfiles >
      
</ outputCacheSettings >
        
</ caching >
 
  //在单独页面中可以用OutPutCache指令:
<%@ OutputCache CacheProfile="cache1" VaryByParam="none" %>

一个 <add name="cache1" duration="5" location="Server" enabled="true"/>就声明了一个缓存方案 ,在页面中只用声明CacheProfile="cache1"就可以只顶某个页面使用某个缓存方案了.

2:关于跨页面值传递:

  1: 在button属性中设置PostBackUrl设置成要提交的页面,也就是html时代中fom的action....

   父 窗体没什么好说的了,只改个提交的页面就行了,子窗体中如何获得呢?  我是这样做的:

< script runat = " server " >

    
protected   void  Page_Load( object  sender, EventArgs e)
    
{
        TextBox tb 
= new TextBox();
        tb 
= (TextBox)Page.PreviousPage.FindControl("TextBox1");
        Label1.Text 
= tb.Text;
    }

</ script > ;
//Page.PreviousPage就是获得父窗体对象,FindControl找到要获得值的控件ID.

 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字段是相同的就代表是一个省的,选择的时候就用此字段

 

proidproname
1湖南
2湖北
cityidproidcityname
11长沙
21湘潭
32武汉
42襄樊
52黄石

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值