`
txf2004
  • 浏览: 6866456 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

第1章-------------------第一个ASP.NET程序-------3

 
阅读更多

1.3 第一个ASP.NET应用程序

既然这么简单,那我们写一个简单的程序看看。我们有强大的集成开发工具Visual Studio,那就从在Visual Studio中新建站点开始吧。

1.3.1

创建ASP.NET应用程序

Visual Studio的IDE我们已经使用很久了,大家应该还记得如何创建Windows应用程序、控制台应用程序、类库等,本节我们首先来创建ASP.NET应用程序。打开Visual Studio,选择“文件”一“新建”一“网站”命令,在打开的如图1.13所示的对话框中可以看到我们新建网站时不一定需要指定网站路径,直接指定文件路径就可以了。位置可以指定三种类型,我们常使用文件系统,单击后面的“浏览”按钮可以帮助你找到文件夹所在位置,避免手动输入路径时产生错误。

图1.13新建网站

选好路径后单击“确定”按钮,这时我们已经新建了一个站点。当然,还必须设置开发应用程序所使用的编程语言,我们使用C#。

事实上,Visual Studio提供了4种创建Web站点的方式,它们是文件系统、本地IIS、 FTP站点和远程站点,如图1.14所示。

图1 14创建Web站点的位置选择

Ø 文件系统:这种方式允许将站点文件存储在本地硬盘的一个指定文件夹中,或者存储在局域网中的一个共享位置。这就意味着无须将站点作为IIS应用程序来创建,就可以进行开发测试等工作。如果你的计算机没有安装IIS,又要搞开发,这种方式再合适不过了。当然该方式的缺陷就是无法使用ns中的某些功能特性,毕竟开发的服务器是简化的Web服务器。一般在开发过程中使用这种方式。

Ø 本地IIS:本地IIS方式是早期的一种创建方式,比文件系统的方式稍微复杂,但可以使用IIS的高级功能,所以常常在需要做Web测试时使用。缺点是由于IIS服务只有一个进程,调试时也只能有一个用户参与调试过程。

Ø FTP站点:FTP站点方式可以在服务器上保存文件,通过FTP访问它们。这是共享环境的一种可能配置,在共享环境下,许多人可以同时使用项目。另外,还可以使用FTP设置远程编辑文件。其中,远程服务器ns有一个虚拟目录映射到FTP文件驻留的位置。FTP选项的最大缺陷是,不能使用源代码管理器(比如VSS),团队中的多个人可能对项目进行相互矛盾的改动。

Ø 远程站点:远程站点方式类似于FTP站点,所不同的是它不再使用FTP方式连接,而是使用HTTP方式。这种方式配置站点相当复杂,而且缺点很多,一般很少使用。

综上所述,我们可以根据实际需要选择适合的开发方式,我们这里使用的是文件系统方式。站点创建好后,我们发现IDE自动给添加了一个页面Default.aspx,可以看到它有两种编辑方式:设计视图和源视图。我们应该在使用Eclipse开发JSP时,见过类似的显示方式。此时如果我们单击“运行”按钮(或者按F5键),即可运行该应用程序。由于我们没有填写代码,页面全是空白。大家可以了解到,ASP.NET的开发不像JSP那样需要复杂的配置。

提示

第一次运行新建的站点时,会看到如图1.15所示的提示对话框,好在我们使用的是中文版的Visual studio.它的意思是说没有启用调试,但可以自动添加启用了调试的 Web.config文件,那再好不过了,有关Web.config文件在本书最后一章有详细的说明.现在我们只需要单击‘确定’按钮,以激活调试功能。

图1.15启用调试

1.3.2

解决方案组成

下面我们来看看Visual Studio自动产生了哪些内容。通过“解决方案资源管理器”(如图1.16所示)我们可以看到如下效果。


图1.16解决方案资源管理器

项目名称的位置现在显示的是解决方案的路径,下面还默认创建了一个文件夹和三个文件。

Ø App_Data文件夹是存放数据的文件夹。

Ø Web.Config文件是不是刚才看到过?对了,在调试时Visual Studio添加了这样一个文件。该文件是站点配置文件,可以设置是否允许调试等信息,我们还常常把一些自己用的内容放进去,当然需要依照一定的规则。

Ø Default.aspx就是我们刚才看到的那个空白页面,注意我们的代码是以.aspx为后缀名的。

Ø Default.aspx.cs文件是做什么用的呢?从图上我们知道它与Default.aspx文件还有些关系。这就是我们在讲ASP.NET的优势时所说的代码后置的文件。

提示

提到解决方案,在Winform编程中我们知道应该有一个.sln的解决方案文件,但却没有出现在我们的站点目录中。ASP.NET中没有这样的文件么?实际上,Visual Studio也自动创建了一个这样的文件,它在:

C:\Documents and Setting\你的用户名\My Document\Visual Studio 2005\Projects

目录中,注意要把“你的用户名”替换成你登录计算机的用户名,真正找不到的是项目文件,(.csproj文件)。因为微软认为站点下所有的文件都属于站点的组成部分,所以ASP.NET的新版本中去掉了站点的项目文件。

1.3.3代码后置和代码内嵌

1.代码后置

代码后置是微软的一项技术,也是我们编写ASP.NET常用的编码方式。具体方式就像我们刚才所说的页面文件( .aspx)和代码文件(.cs)两个文件相互关联构成一个页面。一般情况下,.aspx中没有代码、只有控件和HTML代码,而在.cs文件中编写相关的代码。这样做的好处就是代码和页面内容分离,使代码更清晰。

2.代码内嵌

与代码后置相对应的是代码内嵌,我们可以不使用后置的.cs文件,完全在.aspx文件中编写代码。我们只需要在创建页丽时,不选择“将代码放在单独的文件中”复选框(如图1.17所示),把代码写在<% %>之间就行了。

图1.17新建页面时选择后置代码

下面是一段采用代码内嵌方式的编码:

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>无标题页</title>

</head>

<body>

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

<div>

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

string ShowHello = "张三";

</script>

<%

if (DateTime.Now.Hour > 7 && DateTime.Now.Hour < 12)

ShowHello = ShowHello+",上午好啊,挺精神的嘛。";

else if(DateTime.Now.Hour > 12 && DateTime.Now.Hour < 20)

ShowHello = ShowHello + ",下午好啊,别犯困啊。";

else if (DateTime.Now.Hour > 20 && DateTime.Now.Hour < 24)

ShowHello = ShowHello + ",这么晚了,还不回家?";

else

ShowHello = ShowHello + ",你怎么半夜出来了?";

%>

<%= ShowHello %>

</div>

</form>

</body>

</html>

1.3.4 控件和事件

除了代码后置这样的功能外,ASP.NET还沿用了WinForms编程中的事件驱动概念,并将很多复杂的功能封装到控件中。本节我们将使用三种控件:Label、TextBox、 Button。Label控件可以用来显示文本,它的Text属性包含了要显示的文本内容。 TextBox控件用于用户输入或显示文本,表1-1列出了TextBox控件常用的属性和事件。Button控件可以将表单提交给服务器,从而可以激活服务器端处理。

表1-1 TextBox控件常见的属性和事件

名 称。

类 型

说 明

AutoPostBack属性

Boolean

true、false

指示如果用户更改了控件的内容,是否自动回发到服务器,默认为false

ReadOnly属性

Boolean

True、 false

指示该控件内容是否可编辑,默认为true

Text属性

string

设置或者获取控件的文本内容

TextMode属性

TextBoxMode

SingleLine、

MultiLine、

Password :

控件的模式:单行、多行和密码。设置为密码时,所有的输入显示为“*”

TextChanged事件

当文本发生变化且失去焦点时触发的事件。注意该事件需要配合AutoPostBack使用,因为只有自动回发到服务器,文本 改变的事件才会执行

Button控件也有Text属性,它只是用来设置按钮上显示的文字。Click事件在控件单击时引发。回顾我们在WinForms编程中的方式,我们可以在设计模式下双击Button控件来添加单击事件的代码,同时在属性窗口中双击Click后面的空白,也可以添加事件的代码。

1.3.5

完整示例

讲了这么多,总该做点东西出来看看吧,现在我们编写一个问候程序,就是输入用户名,单击“确定”按钮,然后根据时间给予相应提示。编写C#代码大家都学过,非常简单,步骤如下:

(1)新建页面HelloACCP.aspx。

(2)从工具栏拖入相应控件:两个Label,一个TextBox,一个按钮Button,如图1.18所示。当然位置可以自己调整。

图1.18控件布局

在ASP. NET中,默认控件在页面上的位置是相对定位,如果想要像WinForms中那样,控件拖到哪里就在哪里显示的话,可以在选中控件的情况下,选中菜单中的布局 一 位置 一 绝对定位,即可实现位置拖动。还有一种方式就是设置所有控件默认都是绝对定位,则可以在该栏中的自动定位选项中设置所有默认为自动定位。

(3)编写事件方法。我们所要做的就是在用户输入用户名后,单击“确定”按钮,给予相应提示,那我们所要编写的事件就是单击“确定”按钮的事件。获取和设置用户控件的值也很方便,不需要像JSP那样要使用Request等方式来获取。这种方式就是常说的控件+事件的编码方式。具体代码很简单,我们只需要根据当前时间给予提示语言就可以了,代码如下:

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void btnOK_Click(object sender, EventArgs e)

{

string greeting;

switch(DateTime.Now.Hour)

{

case 6:

case 7:

case 8:

case 9:

case 10:

case 11:

greeting = "{0}同学你好,今儿这么早啊!";

break;

case 12:

case 13:

case 14:

case 15:

case 16:

case 17:

case 18:

greeting = "嘿,{0}同学,别再打瞌睡了,老板来了!";

break;

case 19:

case 20:

case 21:

case 22:

case 23:

greeting = "{0}同学自言自语道:辛苦了一天,该好好休息了。";

break;

default:

greeting = "快跑啊,夜猫子 {0} 来了!";

break;

}

string message = string.Format(greeting, txtName.Text.Trim());

lblMessage.Text = message;

}

}

1.4体会ASP.NET的快速开发特性

刚才的例子比较简单,主要目的是让大家体会一下ASP.NET的控件+事件的编程方式,以区别于JSP的方式,因为同样的功能,在JSP中也多不了多少代码。现在我们做一个显示学员信息列表的页面,除了显示,还要有排序、分页的功能,如图1.19所示。

单击标题排序

分页

图1.19显示学员信息列表

会不会很复杂?事实上,我们只需要几分钟时间就能完成该页面的开发。

1.4.1将学员信息表拖入页面中

大家学习WinForms时学过“服务器资源管理器”,如图1.20所示。可以在这里添加连接,指向MySchool数据库,找到学员信息表并将其拖入页面,如图1.21所示。

图1.20服务器资源管理器

图1.21 将学员信息表拖入页面

1.4.2显示内容的选择

我们把学员信息数据表拖入页面后,所有的字段都显示出来了,但我们只想显示登录名、姓名、性别和地址,怎么办呢?我们可以在智能标记中选择“编辑列”,如图1.22所示,打开“字段”对话框。

图1.22编辑列

在“字段”对话框可以设置显示的内容、标题以及显示顺序,如图1.23所示。左下侧上下的箭头按钮可以调整显示顺序,X 按钮的作用是删除。当选中某字段时,在右侧的字段属性中可设置相应属性。此时我们只需要修改显示的标题头即可,即在 HeaderText栏的属性值中填写对应的中文标题。

图1.23 “字段”对话框

1.4.3设置分页和排序

显示学员信息列表一般内容比较多,需要设置分页。JSP中分页需要很多编码工作,而我们这里只需要简单地设置一下就可以了,如图1.24所示。

就这么简单,你是不是觉得少了些东西?还没有设置一页显示多少条呢,我们可以通过属性栏中的分页设置进行设置,如图1.25所示。AllowPaging属性是设置是否打开分页功能,PageIndex设置的是当前显示第几页,0页是第一页,PageSize属性是设置每页显示多少条,默认是10条。

图1.24设置分页

图1.25分页和排序

可以看到,在设置分页时还有个“启用排序”复选框,启用排序就是在单击标题头时,比如单击“用户名”时,就会按照用户名所对应的字段进行排序。

最后一步,我们希望这个页面显示得好看些,找个美工美化一下?太麻烦了,Visual Studio提供了好多样式,可以方便的套用,如图1.26和图1.27所示。

图1.26选择“自动套用格式”命令

图1.27自动套用格式

好了,现在我们看看运行效果,如图1.28所示。

图1.28运行效果

我们的页面完成了,这期间我们没有编写一行代码,不仅实现了显示、排序、分页的功能,还有不错的显示效果,这就是使用ASP.NET开发的简便之处。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics