内容连接组件

当你需要连接相当数量的页面为访问者提供导航时，该组件相当实用；例如，使用该组件连接一个在线教程，一个新闻组等等，下一部分就是创建新闻组的实例应用。一般来说，进行大量主页连接，你需要在每一个页面上加入相应连接信息，而内容连接组件则可以大大简化这个过程。利用这个组件，你完全可以在一个页面内创建很多页面列表，而且利用这个组件的方法就可以在这个页面内显示相应连接的内容。

内容连接组件有以下这些方法：(其中 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()方法则会指向最后一个。