什么叫CODE BEHIND

 

在ASP.NET开发过程中,经常会听到“Code Behind”,那么究竟什么是“Code Behind”,如何将一个“Code Beside”的代码改编成为“Code Behind”的代码呢?

解答

(一) “Code Behind”简介

“Code Behind”就是所谓的代码分离。在一般的ASP.NET文件中,如果采用“Code Behind”技术的话,一般是用二种文件来创建一个ASP.NET的页面,其中一种是页面文件,以.aspx或者.ascx为扩展名,而另外一种是程序代码文件,一般以.vb或者.cs为扩展名。

“Code Behind”把界面代码和程序代码以不同的文件分离开,对于代码的重复使用,程序的调试和维护都是革命性的。特别是在ASP.NET中,它采用了面向对象的方式,子页面的逻辑可以从父页面中继承过来,如果还是按照以前的方式的话,不可避免就将页面的内容都要继承过来。这样将造成无法进行模块设计。和ASP相比,ASP程序是把界面设计和程序设计混合在一起的(一般称其为“Code Beside”方式),因此当开发人员要修改应用程序界面布局的时候,就往往需要更改大量与界面无关的代码,如果对于代码量很大的程序,就是一项工作量不小的事情。

用“Code Behind”还有一个优点就是可以利用这种技术来有效的保护代码。这对于程序的安全性来说也是一个提高。在Visual Studio.NET写的Web窗体都是用“Code Behind”方式写的,如果不用Visual Studio.NET进行开发的时候,可以使用和ASP类似的方式,即代码嵌入到页面中去。

(二) 将Code Beside”的代码改为“Code Behind”代码

下面是一段采用“Code Beside”的代码,其功能是在网页中使用Calendar控件显示和选择日期:

<%@Import Namespace = "System.Data" %>

<%@ Page language="c#" AutoEventWireup="false" %>

<HTML>

<HEAD>

      <TITLE>在网页中使用Calendar控件显示和选择日期</TITLE>

      <SCRIPT language="C#" runat="server">

           void MyCalendar_SelectionChanged(Object sender, System.EventArgs e)

           {

               // 获取 Calendar 控件中选择的日期

               MessageLabel.Text = "选择的日期是:" + MyCalendar.SelectedDate.ToShortDateString() + "<br>";

           }

      </SCRIPT>

</HEAD>

<body>

      <form id="Form1" runat="server">

           <h3>在网页中使用Calendar控件显示和选择日期</h3>

           <FONT face="宋体">请选择日期:</FONT>

           <BR>

           <asp:Calendar id="MyCalendar" runat="server" OnSelectionChanged="MyCalendar_SelectionChanged">

           </asp:Calendar>

           <BR>

           <asp:Label id="MessageLabel" runat="server">显示选择的日期</asp:Label>

      </form>

</body>

</HTML>

可以看到,在“<SCRIPT language="C#" runat="server">”和“</SCRIPT>”之间的这段代码,就是运行在服务器的代码,下面给出“Code Behind”的代码,先看代码文件Calendar.aspx.cs:

using System;

using System.Web.UI;

using System.Web.UI.HtmlControls;

namespace SubmitMscenter

{

public class CalanderPage:Page

{

     public Label MessageLabel;

     public Calendar MyCalendar;

      void MyCalendar_SelectionChanged(Object sender, System.EventArgs e)

      {

           // 获取 Calendar 控件中选择的日期

           MessageLabel.Text = "选择的日期是:" + MyCalendar.SelectedDate.ToShortDateString() + "<br>";

      }

}

页面文件代码如下:

<%@ Page language="c#" Codebehind="Calendar.aspx.cs" AutoEventWireup="false" validateRequest="false" Inherits="SubmitMscenter.CalanderPage " %>

<HTML>

<HEAD>

      <TITLE>在网页中使用Calendar控件显示和选择日期</TITLE>

</HEAD>

<body>

      <form id="Form1" runat="server">

           <h3>在网页中使用Calendar控件显示和选择日期</h3>

           <FONT face="宋体">请选择日期:</FONT>

           <BR>

           <asp:Calendar id="MyCalendar" runat="server">

           </asp:Calendar>

           <BR>

           <asp:Label id="MessageLabel" runat="server">显示选择的日期</asp:Label>

      </form>

</body>

</HTML>

其中要注意的是以下几点:

① “Code Behind”方式必须要引入必要的命名空间,而引入命名空间是用using语言,而在非“Code Behind”方式下,引入命名空间是用import语句。例如,本例中的第一句:

<%@Import Namespace = "System.Data" %>

② 在“Code Behind”方式中,所有的变量都应该是在一个类中,而不能是外部变量,因此,在本例中用从CalanderPage来进行封装。此外,还需要注意的是,所有的页面类的都必须从Page继承过来的。

③ 在“Code Behind”方式下,必须在页面文件第一行中声明,它的后台文件是哪个文件,使用的是哪个类。如下例代码:

<%@ Page language="c#" Codebehind="Calendar.aspx.cs" AutoEventWireup="false" validateRequest="false" Inherits="SubmitMscenter.CalanderPage " %>

在这个语句中,“Inherits”用来表明本页面所用的类是SubmitMscenter命名空间中的CalanderPage类。“Codebehind”是指定代码文件。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值