网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ASP.Net中程序构架与程序代码的分离

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
id="lblUserName" Font-Name="Arial" ForeColor="red" Text="游客" runat="server" />
  
  权限:<asp:Label id="lblPurview" Font-Name="Arial" Text="无" ForeColor="red" runat="server" />
  </asp:Panel>
  </form>
  </body>
  </html>
  
  例程中,大家可以清楚地看到程序中不包含任何C#、VB、JavaScript来处理OnAdCreated与OnClick事件,但是执行本程序,程序能够正常使用(如图2-1与图2-2)。这便是使用CodeBehinde的结果,事件处理已经被转移到其它程序中定义执行。请大家注意本例中第一行的信息:
  
  <% @ Page Src="cs\EventHandle.cs" Inherits="Aspcn" %>
  
  一般在ASP.Net程序中,Page指令都在设定本程序应当使用什么语言(使用Language属性),而本例中没有出现Language属性,而是出现了两个新的Page属性:Src与Inherits。Src属性设定事件处理真正的代码位置,Inherits属性则设定需要引入的类名。可以看到本例中定义事件处理的文件是EventHandle.cs,我们来看看它的具体内容:
  
  using System;
  using System.Data;
  using System.Data.SqlClient;
  using System.Web;
  using System.Web.UI;
  using System.Web.UI.WebControls;
  using System.Web.UI.HtmlControls;
  public class Aspcn : Page
  {
  //声明Web Form中出现的控件
  public Label lblAdText,lblUserName,lblPurview,lblMsgShow;
  public TextBox tbUserName,tbPasswd;
  public Button btnSubmit;
  public AdRotator ad;
  
  private string strConnString = "server=(local)\\Feidao;database=aspcn;Trusted_Connection=yes";
  
  //处理Adrotator控件建立事件
  public void AdCreated(Object src,AdCreatedEventArgs e)
  {
  lblAdText.Text = e.AlternateText;
  }
  
  public void Submit_Click(Object sender,EventArgs e)
  {
  SqlConnection MyConn = new SqlConnection(strConnString);
  MyConn.Open();
  string strUserName,strPassword,strSelect;
  strUserName = tbUserName.Text;
  strPassword = tbPasswd.Text;
  strSelect = "select * from bbs_user where id=''"+strUserName+"'' and password=''"+strPassword+"''";
  SqlCommand MyComm = new SqlCommand(strSelect,MyConn);
  SqlDataReader dr = MyComm.ExecuteReader();
  if(dr.Read())
  {
  //登陆成功
  lblMsgShow.Text = "登陆成功";
  lblUserName.Text = dr["id"].ToString();
  lblPurview.Text = dr["purview"].ToString();
  }
  else
  {
  //登陆不成功
  lblMsgShow.Text = "登陆不成功";
  }
  dr.Close();
  MyConn.Close();
  }
  }
  
  进行事件处理是定义在一个类中的(本例中是Aspcn,注意大小写),由于需要与Web Forms相关联,所以此类还必须继承Page类。
  
  分析程序,大家可以看到程序中对事件的处理操作是与普通的未进行代码分离的程序是一样的,并没有什么特别的地方。(本人在程序中已经给出的相关注释,相信对大家理解程序有所帮助)
  
  使用CodeBehind技术后,大家需要多写一些代码,比如声明控件等,也许大家很不喜欢多写这样的代码,但是大家也必须看到使用了CodeBehind技术后,主程序的可读性大大增加了。在Example1.aspx中相信大家很快就可以区分页面构架的各个部分,大家想想这些构架如果在其它技术是否能看得如此清楚?
  
  2 用户控件(UserControl)
  
  CodeBehind技术真正实现了代码与构架的分离,比以前的技术前进了一大步,但是它的缺陷也是显而易见的,比如主页面中部那个登陆区,如果内容很多,HTML显示

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号