Dreamweaver MX 2004做信息公告系统(4)详细内容页设计
我们现在开始来做公告系统的详细内容页,通过预览首页我们已经看到了在首页的公告标题链接上给出了一个?g_ID=xxx的参数来链接到详细内容页面showgg.asp,我们要做的就是获取这个参数值并通过该值来调用数据库的内容。
1、在“文件面板”中打开showgg.asp页,在“绑定”面板中点击“+”号,选择“记录集(查询)”,在弹出的记录集窗口中按下图进行设置:
这里和首页建立的记录集差不多,区别就是这里用了“筛选”,因为我们要根据传递来的URL参数选择相应的记录(URL参数就是showgg.asp?g_ID=xxx中的g_ID,而xxx则是该参数的值)。因为筛选后的记录只有一条,所以就没有必要再“排序”了。
提示:ASP中,URL参数的值是通过语句 Request.QueryString("参数名") 来获取的。
也可以用 Request.QueryString() 来获取所有的参数。
2、按照刚才用过的方法把相应的字段绑定到页面上,绑定完成后的页面效果如下图:
但是这其中有一个比较特殊,那就是“附件”:{rsggshow.g_filename},在这个字段的上面要做一个链接,链接的不是一个具体静态的页面,而是从数据库中动态的获取地址。 我们用下面的方法实现这一点。
4、选中页面上的{rsggshow.g_filename},点击属性面板中的“链接”后面的文件夹图标选择链接文件,在弹出的选择文件对话框中选择“数据源”,在从下面的“域”中选择“g_fileurl”,点击确定返回。
<tr>
.........(原来的内容)
</tr>
<% End If %>
做一个判断,如果附件名为空则就不显示这一行了。 这样详细页面的大部分内容已经完成了,你可以从浏览器中预览首页,然后点击相应的标题看看详细页的完成情况了。多点几次你就会发现,那里的点击计数根本就没有变化。呵呵,那是因为我们还没有做点击计数嘛。好了,马上就来做这个。
7、在“绑定”面板上点击“+”号,在菜单中选择“命令(预存过程)”。
8、在弹出的“命令”窗口中,名称填入“uphits”(可以自定义),连接选择conn,类型选择“更新”,在SQL框中输入:
UPDATE GongGao
SET g_hits = g_hits + 1
WHERE g_ID = rID
9、在设计数据库的时候大家就看到了,我专们设计了一个g_url的字段。这个字段的作用就是做一个URL转向,我们可以在公告的标题上直接链接到另一个URL地址而不用打开详细页面。有人会说这个简单啊,直接像做附件的链接一样在index.asp中就做一个动态链接嘛。当然我没有说这个方法不行,不过如果这样的话,又该怎样计算点击数呢?
所以我用了另一个方法来解决这个问题,在showgg.asp的<html>标记之前加上这样一段代码:
If (rsggshow.Fields.Item("g_url").Value)<>"" Then
Response.Redirect(rsggshow.Fields.Item("g_url").Value)
End If
%> 这里也做了一个判断,如果g_url字段不为空的话就转到g_url所在的网址。
10、在showgg.asp的代码视图中,在<html>标签之前加上这样一段:
Function HTMLcode(fString)
If Not IsNull(fString) Then
fString = replace(fString, ">", ">")
fString = replace(fString, "<", "<")
fString = replace(fString, "&#", "<I>&#</I>")
fString = Replace(fString, CHR(32), "<I></I> ")
fString = Replace(fString, CHR(9), " ")
fString = Replace(fString, CHR(34), """)
fString = Replace(fString, CHR(39), "'")
fString = Replace(fString, CHR(13), "")
fString = Replace(fString, CHR(10) & CHR(10), "</P><P> ")
fString = Replace(fString, CHR(10), "<BR> ")
HTMLcode = fString
End if
End Function
%>