当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 亲密接触ASP+(2)

ASP.NET
FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用方法
.NET 常用功能和代码小结
在 .NET Framework 2.0 中未处理的异常导致基于 ASP.NET 的应用程序意外退出
asp.net IList查询数据后格式化数据再绑定控件
asp.net sql存储过程
asp.net 简单实现禁用或启用页面中的某一类型的控件
asp.net(c#)获取内容第一张图片地址的函数
The remote procedure call failed and did not execute的解决办法
ASP.NET 在线文件管理
asp.net 读取并修改config文件实现代码
ASP.NET Cookie 操作实现
asp.net Silverlight中的模式窗体
Silverlight中动态获取Web Service地址
asp.net Silverlight应用程序中获取载体aspx页面参数
asp.net 水晶报表隔行换色实现方法
asp.net 获取Gridview隐藏列的值
手动把asp.net的类生成dll文件的方法
asp.net 使用ObjectDataSource控件在ASP.NET中实现Ajax真分页
动态指定任意类型的ObjectDataSource对象的查询参数
asp.net Md5的用法小结

ASP.NET 中的 亲密接触ASP+(2)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 34 ::
收藏到网摘: n/a

作者:http://www.aspcn.com 飞刀

上一节 ,我们简单介绍了ASP+的配制环境,我们这一节来谈谈ASP+的语法.其实当你装好NGWS后,他所带的文档是最好的学习ASP+的教程,要你E文足够好,以及很好的耐性,学习ASP+不是难事啦.我们这些家伙也是从这里学了很多的,这篇关于ASP+语法的文章,大多数也来自于M$的原文,最可惜的就是我们的服务器不能装上NGWS,有些例子,大家不能看到执行结果,不太好。不过有些地方,我会把执行结果显示出来的。我们开始这一节吧:)

一个ASP+页面的后缀名是".ASPX".它能够包含八种不同的语法标置元素.我们将在这篇文章中介绍这几种不同的语法,并且举出一个例子来显示它的用法。

<% %> 与 <%= %>

用过asp吗,用过,那么大家就不会对这个标签陌生了。呵呵,下面是一个简单的例子。他执行后的结果我想我不写不出来,大家也都知道啦。这个就不多谈了,呵呵.

<% for (int i=0; i<8; i++)
{
%>
<font size="<%=i%>"> Hello World! </font> <br>
<% } %>

上面的例子中<% %>之间的程序将会被执行,并显示出的结果,<%="Hello World" %>就等于<% Response.Write ("Hello World") %>

注意:在C#中,是以分号(;)做为分隔符,但是我们要注意一些事情。

 

C# code
<% Response.Write("Hello World"); %> 这里的分号是必须的
<%="Hello World"; %> 这样写会有一些小问题就是,显示的结果是 "Response.Write("Hello World";);"
<%="Hello World" %> 正确

声明代码的语法: <script runat="server">
这段代码定义了这个区域中的代码将会进行编绎。在下面的例子中我们演示了一个名为"Substract"方法是如何在<script runat="server">中被声明的。

<script language="C#" runat=server>
int subtract(int num1, int num2)
{
return num1 - num2;
}
</script>

<%
...
number = subtract(number, 1);
...
%>

重要问题:ASP+不像ASP,在ASP中所能的函数得在<% %>区域中声明,但是在ASP+中所有函数和变量都必须在<script runat=server></script>区域中声明。否则,aspx编译时会出现错误.

ASP+ 服务器端控件语法

服务器上的控件使用开发者能够动态产生HTML页面,并发送给客户(如Netscape和IE所产生的JavaScript是不同的。还有普通浏览器和WAP浏览所收到的页面也是不同的).他们对象的声明也是运用了标签。但是他们和其它的标签是不同的。因为他们包含有一个"runat=server"属性。(呵呵,这个属性我们在ASP中也用过,不过功能就...)。下面的例子演示了<asp:lable runat="server">控件的使用方法。

<html>

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

void Page_Load(Object sender, EventArgs e) {
Message.Text = "Welcome to ASP+";
}

</script>

<body>

<asp:label id="Message" font-size=24 runat=server/>

</body>

</html>


上面的源代码中我们加入ID为 "Message":

<asp:label id="Message" font-size=24 runat="server"/>


看了上面的代码,是不是发现我们在写VB程序,呵呵,先搭好骨架,然后再一个个的去编写他们事件处理。这就是M$给我们的新概念.


ASP+ Html 服务器控件语法

HTML服务器控件,使开发者程序化的操作HTML元素。一个HTML服务器控件只是比普通HTML元素多了一个"runat=server"属性。下面的例子具体演示了HTML服务控件的用法。

<script language="C#" runat=server>
void Page_Load(Object sender, EventArgs e) {
Message.InnerHtml = "Welcome to ASP+";
}
</script>
...
<span id="Message" style="font-size:24" runat=server/>

他执行的结果和第一个程序的结果是一样的


数据捆绑(Databinding)语法 <%# %>

数据捆绑技术使得ASP+开发者能够很形像地把控件的属性与数据容器的值联系起来.在<%# %>这个区域内的代码只有在"DataBind"方法调用后才会被执行。下面的例子就演示了它的用法。

<asp:datalist id="MyList" runat=server>
<template name="ItemTemplate">
Here is a value: <%# Container.DataItem %>
</template>
</asp:datalist>

通过这种方法使得名为"MyList"的控件程序化,这时就该调用DataBind()方法了。
<font color="#FF6600">
void Page_Load(Object sender, EventArgs e)<br>
{ ArrayList items = new ArrayList(); <br>
items.Add("One"); <br>
items.Add("Two");<br>
items.Add("Three");<