内容连接组件
当你需要连接相当数量的页面为访问者提供导航时,该组件相当实用;例如,使用该组件连接一个在线教程,一个新闻组等等,下一部分就是创建新闻组的实例应用。一般来说,进行大量主页连接,你需要在每一个页面上加入相应连接信息,而内容连接组件则可以大大简化这个过程。利用这个组件,你完全可以在一个页面内创建很多页面列表,而且利用这个组件的方法就可以在这个页面内显示相应连接的内容。
内容连接组件有以下这些方法:(其中 Content Linking File是包含这些连接文件的一 个文本文件。
■GetListCount(Content Linking File)显示组件中包含的连接的文件数目。
■GetListIndex(Content Linking File)显示当前页在这些连接文件中的前后位置。
■GetNextDescription(Content Linking File)显示连接文件中下一个的描述。
■GetNextURL(Content Linking File)显示连接文件中的下一个文件的URL地址。
■GetNthDescription(Content Linking File, Number)显示连接文件中指定位置的文件描 述。
■GetNthURL(Content Linking File, Number)显示连接文件中指定位置的文件URL地 址。
■GetPreviousDescription(Content Linking File) 显示连接文件中前一个文件的描述。
■GetPreviousURL(Content Linking File) 显示连接文件中前一个文件的URL地址。
例如:假设你需要创建一个一步一步的网上烘面团培训,你按照顺序创建了有步骤的介绍文件,现在看内容连接组件如何运做。
首先,你需要创建一个 Content Linking File。这是用文本编辑器就可以完成的普通 文本文件。下面是这个文件的内容:
/pasta/grabpot.asp |
从橱柜中取出面盘 |
/pasta/boilwater.asp |
在盘中烧上一些开水 |
/pasta/openbox.asp |
打开放面团的盒子 |
/pasta/dumpcontents.asp |
将面团倒入面盆 |
/pasta/wait.asp |
等上10分钟 |
/pasta/home.asp |
返回主页 |
当你建立这个文件后,存储完毕记住它的名字,(这里面假设是pasta.txt)。
这个文件有两列,第一列是文件的URL地址(无论是asp文件还是其他的什么诸如html文件或者甚至是pl文件以及cfm文件都可以),第二列是文件的描述,这两列必须用tab键来分隔而不能是空格键。否则该组件就无法正确识别区分。
注意
该文件就是纯文本,任何什么粗体,斜体之类的格式将被忽略。
当你创建了这个文本文件后,你就可以使用内容连接组件来制作自己的导航主页了。你也许需要在一个页面中显示这些步骤,那么可以根据下面这个例子进行:
<HTML>
<HEAD><TITLE>主页</TITLE></HEAD>
<BODY>
<h2>欢迎进入迈至科ASP教程示例之站点导航</h2>
<%
Set mylinks=Server.CreateObject(
“MSWC.NextLink”)%>
<%
制作烘面团有<%=mylinks.GetListCount(
“pasta.txt”) %>个步骤:<OL>
<%
For I=1 to mylinks.GetListCount(
“pasta.txt”)-1%>
<LI><A Href=
”<%=mylinks.GetNthURL(“pasta.txt”,i) %>”><%=mylinks.GetNthDescription(
“pasta.txt”,I) %></A><%
NEXT
%>
</OL>
</BODY>
</HTML>
那么这就是利用该组件创建事例并应用的一个实例,该事例在页面范围内赋给变量mylinks。下面是显示结果(图20.1):
图20.1 网上烘面团培训
这里面使用了三种方法:
■首先,GetListCount()方法从pasta文本文件中接受记录条目数。无论什么时候你创建了内容连接组件的事例并使用其方法时,你必须传递这个记录内容连接文件的文本文件名称,这个例子中,调用方法是mylinks.GetListCount(
“pasta.txt”)■第二个是GetNthURL()方法,用来在文本文件中接受指定位置的记录的URL地址,那么出现在循环中就是将连接依次指向每一个文件的URL地址。
■第三个GetNthDescription()方法,和GetNthURL方法十分类似,只不过接受的信息不是URL地址而是其描述,即Tab键后面那部分对于某个文件的解释性文字,也是上面例子的显示结果中显示的字段。
那么利用一个简单的循环就可以将这些连接依次显示,而且可以限定最后一个‘返回主页’不要显示,最后一个的用途就是在分页上进行主页返回。
对于每一个步骤的页面,其余的那些方法就变得十分有用,参见下面这个BoilWater.asp的例子:
<HTML>
<HEAD><TITLE>第二步</TITLE></HEAD>
<BODY>
<H2>第二步:烧些水</h2>
在盆里略微烧些开水。
<hr>
<%
Set mylinks=Server.CreateObject(
“MSWC.NextLink”)IF mylinks.GetListIndex(
“pasta.txt”)>1 THEN%>
<a href=
”<%=mylinks.GetPreviousURL(“Paste.txt”)%>”>前一步</a>
<% END IF
IF mylinks.GetListIndex(
“pasta.txt”)<mylinks.GetListCount(“pasta.txt”)-1 THEN%>
<a href=
”<%=mylinks.GetNextURL(“Paste.txt”)%>”>后一步</a>
<% END IF %>
<br>
<a href=
”<%=mylinks.GetNthURL(“pasta.txt”,mylinks.GetListCount(“pasta.txt”)) %>”>返回主页
</a>
</body>
</html>
上面这种调用方法在在线教程中就非常常用,其中判断自己的页面在连接文件中的位置用GetListIndex()方法,然后根据自己的位置利用两个IF语句确定是否存在前页和后页。再进行向前和向后的连接。这里面一个是向前的GetPreviousURL()方法,一个是向后的GetNextURL()方法,最后作一个返回主页的连接,利用GetNthURL,因为pasta.txt的最后一个记录就是返回主页。
提醒一下,对于不同的页面,GetNextURL()方法和GetPrevious()方法调用的是不同的,这样在做大规模在线教程时就可以省去很多麻烦,只要写好一个目录的Txt文件,很多位置问题完全可以根据这些方法自己确定。同时注意判断,因为如果发现GetPreviousURL()已经无法获取(到头了),那么就会出错。
另外,如果你当前的文件不在那个指定所有文件列表的txt文本中(通常是你的拼写错误造成的),那么GetPreviousURL()方法会指向文本文件中的第一个记录,而GetNextURL()方法则会指向最后一个。