在 Dreamweaver 生成主页和详细页

上次更新日期: 2024年4月25日

了解如何在 Dreamweaver 中构建母版页并创建指向详情页面的关联。

注释

用户界面已经在 Dreamweaver 和更高版本中做了简化。 因此,您可能在 Dreamweaver 和更高版本中找不到本文中描述的一些选项。 有关详细信息,请参阅此文章

关于主页和详细页

母版页和详情页面是用于组织和显示记录集数据的页面集。这些页面为您网站的访客提供概述和详细视图。母版页列出所有记录,并包含指向详情页面的链接,这些详情页面显示每条记录的其他信息。

主页

详细页

您可以通过插入数据对象来构建母版页和详情页面,实现在一次操作中创建母版页和详情页面;也可以使用服务器行为以更灵活的方式构建母版页和详情页面。使用服务器行为构建母版页和详情页面时,您首先创建母版页来列出记录,然后添加从列表到详情页面的关联。

生成主页

开始之前,请确保为您的网站定义数据库连接。

要创建空白页面,请选择"文件">"新建">"空白页面",选择页面类型,然后单击"创建"。该页将成为主页。
定义记录集。

在"绑定"面板中("窗口">"绑定"),单击加号(+)按钮,选择"记录集",然后选择选项。如果要编写自己的 SQL 语句,请单击“高级”。

确保记录集包含创建母版页所需的所有表列。记录集还必须包括含有每条记录唯一键的表列,即记录 ID 列。在下面的示例中,"代码"列包含每条记录的唯一键。

为主页选择的记录集列

通常,母版页上的记录集从数据库表中提取几列,而详情页面上的记录集从同一表中提取更多列以提供额外的详细信息。

记录集可以由用户在运行时定义。有关更多信息,请参阅 构建搜索和结果页面

插入显示记录的动态表格。

将插入点放在希望动态表出现在页面上的位置。选择"插入">"数据对象">"动态数据">"动态表",设置选项,然后单击"确定"。

如果您不想向用户显示记录 ID,可以从动态表中删除该列。单击页面上的任意位置将焦点移动到页面。将光标移动到动态表中列顶部附近,直到列单元格以红色轮廓显示,然后单击以选择列。按 Delete 键从表中删除列。

构建母版页并添加记录集后,您需要创建打开详情页面的链接。然后修改链接以传递用户选择的记录的 ID。详情页面使用此 ID 在数据库中查找请求的记录并显示它。

注释

您使用相同的流程创建链接以更新页面。结果页面类似于母版页,更新页面类似于详细页面。

打开详细页面并传递记录 ID (ColdFusion, PHP)

在动态表中,选择将用作链接的文本的内容占位符。
应用于所选占位符的链接。

在属性检查器中,单击"链接"框旁边的文件夹图标。
浏览找到并选择该详细页。 详细页面显示在属性检查器的"链接"框中。

在动态表格中,所选文本显示为已被链接。 当页面在服务器上运行时,链接应用于每个表格行中的文本。

在主页上,选择动态表格中的链接。
(ColdFusion) 在属性检查器的"链接"框中,在 URL 的末尾添加以下字符串:

?recordID=#recordsetName.fieldName#

问号告诉服务器后面跟随的是一个或多个 URL 参数。单词 recordID 是 URL 参数的名称(您可以编造任何喜欢的名称)。记录 URL 参数的名称,因为您稍后将在详细页面中使用它。

等号后的表达式是参数的值。在这种情况下,值由 ColdFusion 表达式生成,该表达式从记录集返回记录 ID。动态表中的每一行都会生成不同的 ID。在 ColdFusion 表达式中,将 recordsetName 替换为您的记录集名称,将 fieldName 替换为记录集中唯一标识每条记录的字段名称。大多数情况下,该字段将由记录 ID 编号组成。在以下示例中,该字段由唯一的位置代码组成。

locationDetail.cfm?recordID=#rsLocations.CODE#

页面运行时,记录集 CODE 字段的值会插入到动态表的相应行中。例如,如果澳大利亚堪培拉租赁点的代码是 CBR,则在动态表的堪培拉行中会使用以下 URL:

locationDetail.cfm?recordID=CBR

(PHP) 在属性检查器的链接字段中,在 URL 末尾添加以下字符串:

?recordID=<?php echo $row_recordsetName['fieldName']; ?>

问号告诉服务器后面跟着一个或多个 URL 参数。单词 recordID 是 URL 参数的名称(您可以使用任何喜欢的名称)。记下 URL 参数的名称,因为稍后您将在详细信息页面中使用它。

等号后面的表达式是参数的值。在这种情况下,该值由 PHP 表达式生成,该表达式从记录集返回一个记录 ID。为动态表中的每一行生成\n不同的 ID。在 PHP 表达式中,将 recordsetName 替换为您的记录集名称,将 fieldName 替换为记录集中用于唯一标识每条记录的字段名称。在大多数情况下,该字段将包含记录 ID 编号。在以下示例中,该字段包含唯一的位置\n代码。

locationDetail.php?recordID=<?php echo $row_rsLocations['CODE']; ?>

当\n页面运行时,记录集的 CODE 字段的值将插入\n动态表中的相应行。例如,如果澳大利亚堪培拉的租赁位置代码是 CBR,则在动态表的堪培拉行中使用以下 URL:

locationDetail.php?recordID=CBR

保存该页面。

打开详细信息页面并传递\n记录 ID (ASP)

选择要用作链接的动态内容。
在"服务器行为"面板("窗口">"服务器\n行为")中,单击加号 (+) 按钮,然后从弹出菜单中选择"转到详细信息页面"。
在“详细页”框中,单击“浏览”并定位该页。
通过从"记录集"和"列"\n弹出菜单中选择记录集和列来指定要传递给详细信息页面\n的值。通常该值对于记录是唯一的,例如\n记录的唯一键 ID。
如果需要,通过选择"URL 参数"或"表单参数"选项将现有页面参数传递给详细信息\n页面。
单击“确定”。

会出现一个围绕所选文本的特殊链接。 当用户\n单击链接时,"转到详细信息页面"服务器行为将传递包含记录 ID 的\nURL 参数给详细信息页面。例如,如果 URL 参数名为 id,详细信息页面名为 customerdetail.asp,则当用户单击链接时,URL 看起来类似如下:

http://www.mysite.com/customerdetail.asp?id=43

URL 的第一部分 http://www.mysite.com/customerdetail.asp 打开详细信息页面。第二部分 ?id=43 是 URL 参数。 它告诉详细页要查找和显示哪个记录。 术语\nid 是 URL 参数的名称,43 是其值。在此示例中,URL 参数包含记录的 ID 编号 43。

在详细信息页面上查找并显示所请求的记录

为了显示母版页请求的记录,您必须定义一个记录集来保存单个记录,并将记录集列绑定到详细信息页面。

切换到详细页。 如果您还没有详细信息页面,请创建一个空白页面("文件">"新建")。
在"绑定"面板("窗口">"绑定")中,单击加号 (+) 按钮,然后从弹出菜单中选择"记录集(问题)"或"数据集(问题)"。

将出现简单的“记录集”或“数据集”对话框。 如果出现高级对话框,请单击"简单"。

为记录集命名,然后选择数据源和将为记录集提供数据的数据库表。
在"列"区域中,选择要包含在记录集中的表列。

记录集可以与母版页上的记录集相同或不同。通常详细信息页面记录集具有更多列以显示更多详细信息。

如果记录集不同,请确保详细信息页面上的记录集至少包含一个与母版页上的记录集共有的列。共同列通常是记录 ID 列,但也可以是相关表的联接字段。

要在记录集中仅包含表的某些列,请单击"选定",然后通过按住 Ctrl 键单击 (Windows) 或按住 Command 键单击 (Macintosh) 在列表中选择所需的列。

完成"筛选条件"部分,以查找并显示在母版页传递的 URL 参数中指定的记录:
  • 从"筛选条件"区域的第一个弹出菜单中,选择记录集中包含与母版页传递的 URL 参数值匹配的值的列。例如,如果 URL 参数包含记录 ID 号,请选择包含记录 ID 号的列。在上一节讨论的示例中,名为 CODE 的记录集列包含与母版页传递的 URL 参数值匹配的值。

  • 从第一个菜单旁边的弹出菜单中,选择等号(应该已经选定)。

  • 从第三个弹出菜单中选择“URL 参数”。 母版页使用 URL 参数将信息传递给详细信息页面。

  • 在第四个框中,输入母版页传递的 URL 参数的名称。

单击“确定”。 记录集随即出现在“绑定”面板中。
通过在"绑定"面板("窗口">"绑定")中选择列并将其拖到页面上来将记录集列绑定到详细信息页面。

将母版页和详细信息页面都上载到服务器后,您可以在浏览器中打开母版页。单击母版页上的详细信息链接后,详细信息页面会打开并显示有关所选记录的更多信息。

查找特定记录并在页面上显示它 (ASP)

您可以添加服务器行为来查找记录集中的特定记录,以便在页面上显示记录数据。服务器行为仅在使用 ASP 服务器模型时可用。

创建一个满足以下前提条件的页面:
通过单击"服务器行为"面板("窗口">"服务器行为")上的加号 (+) 按钮并选择"记录集分页">"移动到特定记录",添加服务器行为以查找由 URL 参数指定的记录。
在"移动到记录"弹出菜单中,选择您为页面定义的记录集。
在"Where Column"弹出菜单中,选择包含由其他页面传递的值的列。

例如,如果其他页面传递记录 ID 号码,请选择包含记录 ID 号码的列。

在"匹配 URL 参数"框中,输入由其他页面传递的 URL 参数的名称。

例如,如果其他页面用于打开详细信息页面的 URL 是 id=43,请在"匹配 URL 参数"框中输入id

单击“确定”。

下次浏览器请求页面时,服务器行为将读取由其他页面传递的 URL 参数中的记录 ID,并移动到记录集中的指定记录。

一次性构建主页面和详细页面

开发 Web 应用程序时,您可以使用母版详细信息页面集数据对象快速构建母版页和详细信息页面。

要创建空白动态页面,请选择"文件">"新建">"空白页面",从"页面类型"列表中选择动态页面,然后单击"创建"。

该页将成为主页。

为该页面定义记录集。

确保记录集不仅包含母版页所需的所有列,还包含详细页所需的所有列。通常,母版页上的记录集从数据库表中提取几个列,而详细信息页面上的记录集从同一表中提取更多列以提供额外的详细信息。

在"设计"视图中打开母版页,然后选择"插入">"数据对象">"母版详细信息页面集"。
在"记录集"弹出菜单中,确保选择了包含您要在母版页上显示的记录的记录集。
在"母版页字段"区域中,选择要在母版页上显示的记录集列。

默认情况下,会选择记录集中的所有列。 如果您的记录集包含唯一键列(如recordID),请选择它并单击减号 (-) 按钮,这样它就不会在您的页面上显示。

要更改列在母版页上的显示顺序,请在列表中选择一个列,然后单击向上或向下箭头。

在母版页上,记录集列将水平排列在表格中。单击向上箭头将列向左移动;单击向下箭头将列向右移动。

在"链接到详细信息来源"弹出菜单中,选择记录集中将显示值的列,该值也用作指向详细信息页面的链接。

例如,如果您希望母版页上的每个产品名称都有一个关联到详细页面的链接,请选择包含产品名称的记录集列。

在"传递唯一键"弹出菜单中,选择记录集中包含标识记录值的列。

通常,所选的列就是记录 ID 号。 该值会传递到详细页面,以便标识用户选择的记录。

如果唯一键列不是数值,请取消选择"数值"选项。
注释

默认情况下会选择此选项;并非所有服务器模型都会显示该选项。

指定要在母版页上显示的记录数。
在"详细页面名称"框中,单击"浏览"并定位您创建的详细页面文件,或输入一个名称并让数据对象为您创建一个。
在"详细页面字段"区域中,选择要在详细页面上显示的列。

默认情况下,会选择母版页记录集中的所有列。如果记录集包含唯一键列(如 recordID),请选择它并单击减号 (-) 按钮,这样它就不会在详细页面上显示。

要更改列在详细页面上的显示顺序,请在列表中选择一列,然后单击向上或向下箭头。

在详细页面上,记录集列在表格中垂直排列。单击向上箭头会将列向上移动;单击向下箭头会将列向下移动。

单击“确定”。

数据对象会创建详细页面(如果您尚未创建),并将动态内容和服务器行为添加到母版页和详细页面。

自定义母版页和详细页面的布局以满足您的需求。

您可以使用 Dreamweaver 页面设计工具完全自定义每个页面的布局。您还可以通过在"服务器行为"面板中双击来编辑服务器行为。

使用数据对象创建母版页和详细页面后,使用"服务器行为"面板("窗口">"服务器行为")修改数据对象插入到页面中的各种构建块。