我的C# asp.net 学习笔记

ASP.NET—C#语言

InheritsSrcCodeBehind (2006-10-06 15:08:17)

InheritsSrcCodeBehind
ASP.NET 中使用代码隐藏方法来设计Web 窗体,可使页代码能够更清晰地从 HTML 内容中分离到完全单独的文件中。

通常一个 @page 指令如下:

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false"
Inherits="WebApplication1.WebForm1" %>

其中有三个属性(InheritsSrcCodeBehind)非常容易混淆,下面分别给予说明。

Inherits

Inherits 属性用于定义当前 Web 窗体所继承的代码隐藏类(该类是 System.Web.UI.Page 的派生类)
这个 inherits 属性只用于采用代码隐藏方式编写的 Web 窗体,也就是,如果你的代码全都是在 Web 窗体的
<script runat="server"></script>
标签中,就不必用这个属性了。

Src

Src 属性用于指定代码(隐藏)文件在文件系统中的位置,以便于 ASP.NET Framework Just-In-Time (JIT)
编译器动态编译 Web 窗体时能够找到它。用 Inherits 指明的类,就是放在这个类代码(隐藏)文件中。

通常 ASP.NET Framework 使用这些类时,首先会到已编译的程序集中查找,
如果找不到就会把在 Src 属性中提供的代码文件重新编译,所以 Src 属性和 Inherits 属性并不互斥。

需要说明的是,Visual Studio .NET 并不使用 Src 属性,
这就意味着 Visual Studio .NET 总是指望你用“生成”菜单中的生成操作来产生已编译的程序集
(通常是编译成DLL放在/bin目录中,这样一来,在发布应用系统时,就可以不用发布源代码了),
而以后不会发生需要动态编译的情况。所以如果你是在 Visual Studio .NET IDE 中开发的话,
要时常注意用“重新生成”功能来编译发生变动的类,否则,将会发生诸如找不到类呀什么的一系列问题。

Codebehind

Codebehind 属性并不是一个真正的 ASP.NET 属性,在ASP.NET 文档中是找不到它的。
它其实只是一个 Visual Studio .NET 属性,
Visual Studio .NET
就是借用这个属性来很好地跟踪管理项目中的 Web 窗体和与之相对的代码隐藏文件,
比如当你在设计环境中往 Web 窗体上放入一个服务器控件时,
Visual Studio .NET
将自动找到与该 Web 窗体相对应的代码隐藏文件,并自动插入相关的代码。
因此,用 Visual Studio .NET 作开发时,不可轻率地将 Codebehind 属性换成 Src 属性,他们的功能作用不同。

一、基础

1.     ArraryList System.Collections  // 数据列表

ArraryList arrl=new ArraryList();

  arrl.Add(“上海”);

   DropDownList1.DataSource=arrl;

   DropDownList.DataBind();

2.       页面是否首次加载

if(!IsPostBack)

{

}

 3. 请求验证

<%@ Page Language="C#" AutoEventWireup="true" validateRequest="false"  CodeFile="Default2.aspx.cs" Inherits="Default2" %>

//validateRequest="false" 不请求验证

4.       Server.HtmlEncode( string ch);  

//去掉html功能

 

二、态管理 (Application,Session,Cookie)

1. Application (初始一般 Global.asax)

  .Lock( );

  .UnLock( );

 

2. Session (web.config文件中 Cookieless=True可以不受Cookie限制)

<pages enableSessionState="true"/>

<sessionState  mode="StateServer"  timeout="20"
stateConnectionString="tcpip=127.0.0.1:42424"  cookieless="false"   />  

 

如果调用DLL继承IRequiresSessionState(IHttpHanlder, IRequiresSessionState),可以不用配置文件中配置

public class WebForm1 : Page,IRequiresSessionState

  {  

    }

3.Cookie 甜饼

   Server.UrlEncode(     )  //

  Server.UrlDecode(      )    //

GoodList.Values["GoodsName"] = Server.UrlEncode(Server.UrlDecode(Request.Cookies["GoodList"]["GoodsName"]) + ",李四");

 

: 写入 Cookie

  HttpCookie nc=new HttpCookie("newcookie");

//中文

nc.Values["name"]= Server.UrlEncode("张三");

 

nc.Values["dt"]=DateTime.Now.ToString();

//nc.Expires = DateTime.Now.AddDays(1);

Response.Cookies.Add(nc);

: 读取

  HttpCookie  GetCook=Request.Cookies["newcookie"];

//中文问题

  Response.Write(Server.UrlDecode(GetCook.Values["name"]));

  Response.Write("<br>"+GetCook.Values["dt"]);

 

三、GridView表格

 1.删除设置

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

    {

        try

        {

            if (e.Row.RowType == DataControlRowType.DataRow && this.GridView1.EditIndex != e.Row.DataItemIndex)

            {

                LinkButton lbtnDel = new LinkButton();

                lbtnDel = (LinkButton)e.Row.Cells[0].Controls[2];  //Controls[序号]   序号可能有变

                lbtnDel.Attributes.Add("onclick", "return confirm('你确认删除吗?')");

            }

        }

        catch (Exception error)

        { }

      

    }

四、控件

1.AdRotator 控件每次刷新内容不同

ImageUrl

图片地址

AlternateText

提示文字

Impressions

显示频率权重

NavigateUrl

跳转地址

KeyWord

广告关键字

 

 

2.BulletedList (列表控件系列)

 DisplayMode    BullletStyle      BullletImageUrl(列表图像)

 DataBound事件 :

  {

for(int I=0;i<BulletedList2.Items.Count;i++)

  {

    BulleteList2.Items[i].Value=”~/write.aspx?id=”+BulletedList2.Items[i].Text;

   }

   }

Click事件 :

 {

   Response.Write(BulletedList3.Items[e.Index].Text);

  }

3. 日历控件 Calendar

 1)SelectionMode 选择模式

 switch(DropDownList1.SelectedValue)

 {

  case “None”:

Calendar1.SelectionMode=CalendarSelectionMode.None;

break;

case “DayWeekMonth”

Calendar1.SelectionMode=CalendarSelectionMode.DayWeekMonth;

break;

case “DayWeek”:

 Calendar1.SelectionMode=CalendarSelectionMode.DayWeek;

break;

case “Day”:

 Calendar1.SelectionMode=CalendarSelectionMode.Day;

break;

 }

//指定日期事件

{

  string y=ye.SelectedValue.Tostring();  //选择组合框的值

  Calendar1.VisibleDate=Covert.ToDateTime(y+”-“+m+”-“+d);

}

2)DayRender 呈现日时激发

{

 CalenDarDay d=e.Day;

 TableCell  c=e.Cell;

 if(d.IsOtherMonth)

 {  //其他月份清除本来的节日

   c.Controls.Clear();

  }

  else

  {

 try

  {

string txt=arr[d.Date.Month][d.Date.Day];  //[][]节日

if(txt!=string.Empty)

{

  string day=e.Day.Date.ToshortDateString();  //转化为短日期

  foreach(DataRow dr in ds(day).Rows) //循环数据视图中每一行 ds( ) -----返回DataTable 函数

   {

     c.Controls.Clear();

     c.Controls.Add(new LiteralControl(“<a href=’...show.aspx?dt=”
+day +”’>”+e.Day.Date.Day+”</a>”));

   }

  c.Controls.Add(new LiteralControl(“<br>”+txt));

 }

}

catch(Exception exe)

{

 

}

}

}

4.       DropDownList

 ArraryList arrl=new ArraryList();

   arrl.Add(“上海”);

    DropDownList1.DataSource=arrl;

    DropDownList.DataBind();

1)  启用AutoPostBack ------ SelectedIndexChanged 事件

switch(DropDownList1.SelectedValue)

 {

   case “科学”:

.......

break;

          case “文艺”:

......

break;

          default:

         }

  2)DropDownList.Item.Add(   )

3) DropDownList1.Items.Clear();

  4)可以绑定到数据源,where 可以为控件值(数据连动)

5.       文件上传控件FileUpload

: string name=FileUpload1.FileName;

   string size=FileUpload1.PostedFile.ContentLength.ToString(); //获取已上传文件的大小

   string type=FileUpload1.PostedFile.ContentType; //MIME 内容类型

   string type2=name.Substring(name.LastIndexOf(“.”)+1);  // 文件后缀名

   string ipath=Server.MapPath(“upimg”)+”//”+name;

   string fpath=Server.MapPath(“upfile”)+”//”+name;

   string wpath=”upimg//”+name;   //存入数据库虚拟路径

if(type2==”jpg”||type2==”gif”||type2=”png”||type2==”bmp”)

 {

  FileUpload1.SaveAs(ipath);  //保存到文件

  Image1.ImageUrl=wpath;    //将图片显示出来

  Label1.Text=”你传的文件名称是:”+name;

 }

 else

  {

Image1.Visible=false; //隐藏图片控件

FileUpload1.SaveAs(fpath);

Label1.Text=”你传的文件名称是:”+name;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值