Dreamweaver MX 2004做信息公告系统(4)详细内容页设计

来源:互联网 发布:linux服务器改名 编辑:程序博客网 时间:2024/06/03 18:08

Dreamweaver MX 2004做信息公告系统(4)详细内容页设计

添加时间:2007-4-22 

  我们现在开始来做公告系统的详细内容页,通过预览首页我们已经看到了在首页的公告标题链接上给出了一个?g_ID=xxx的参数来链接到详细内容页面showgg.asp,我们要做的就是获取这个参数值并通过该值来调用数据库的内容。

  1、在“文件面板”中打开showgg.asp页,在“绑定”面板中点击“+”号,选择“记录集(查询)”,在弹出的记录集窗口中按下图进行设置:

Dreamweaver MX 2004做信息公告系统(4)详细内容页设计

  这里和首页建立的记录集差不多,区别就是这里用了“筛选”,因为我们要根据传递来的URL参数选择相应的记录(URL参数就是showgg.asp?g_ID=xxx中的g_ID,而xxx则是该参数的值)。因为筛选后的记录只有一条,所以就没有必要再“排序”了。

  提示:ASP中,URL参数的值是通过语句 Request.QueryString("参数名") 来获取的。

  也可以用 Request.QueryString() 来获取所有的参数。

  2、按照刚才用过的方法把相应的字段绑定到页面上,绑定完成后的页面效果如下图:

Dreamweaver MX 2004做信息公告系统(4)详细内容页设计

  但是这其中有一个比较特殊,那就是“附件”:{rsggshow.g_filename},在这个字段的上面要做一个链接,链接的不是一个具体静态的页面,而是从数据库中动态的获取地址。 我们用下面的方法实现这一点。

  4、选中页面上的{rsggshow.g_filename},点击属性面板中的“链接”后面的文件夹图标选择链接文件,在弹出的选择文件对话框中选择“数据源”,在从下面的“域”中选择“g_fileurl”,点击确定返回。

Dreamweaver MX 2004做信息公告系统(4)详细内容页设计

  然后在下面的目标中选择“_blank”,我们让它在新窗口中打开。这样动态的链接就做好了。

Dreamweaver MX 2004做信息公告系统(4)详细内容页设计

  5、还有一个特殊的部分,就是网页的标题我们也要从数据库中读取。这个需要在代码视图下完成。切换到代码视图,找到<title>部分,把g_title绑定到相应的位置。

Dreamweaver MX 2004做信息公告系统(4)详细内容页设计

  6、相关附件这一行还有一点就是只能在有附件的时候才显示,如果没有附件的话这一行要隐藏起来,这样才够人性化嘛。切换到代码视图,找到这一行。

Dreamweaver MX 2004做信息公告系统(4)详细内容页设计

  在这一行的<tr>和</tr>之外加上这样的语句:

Dreamweaver MX 2004做信息公告系统(4)详细内容页设计

<% If (rsggshow.Fields.Item("g_filename").Value)<>"" Then%>
<tr>
.........(原来的内容)
</tr>
<% End If %>

  做一个判断,如果附件名为空则就不显示这一行了。 这样详细页面的大部分内容已经完成了,你可以从浏览器中预览首页,然后点击相应的标题看看详细页的完成情况了。多点几次你就会发现,那里的点击计数根本就没有变化。呵呵,那是因为我们还没有做点击计数嘛。好了,马上就来做这个。

  7、在“绑定”面板上点击“+”号,在菜单中选择“命令(预存过程)”。

Dreamweaver MX 2004做信息公告系统(4)详细内容页设计

  8、在弹出的“命令”窗口中,名称填入“uphits”(可以自定义),连接选择conn,类型选择“更新”,在SQL框中输入:

UPDATE GongGao
SET g_hits = g_hits + 1
WHERE g_ID = rID

在“变量”后点击“+”号,添加一个变量,名称为“rID”(和上面SQL语句中的最后一个一致),运行值填写:
Request.QueryString("g_ID")

Dreamweaver MX 2004做信息公告系统(4)详细内容页设计

  这样就在这个页面添加了一个每访问一次g_hits就加1的命令,就实现了点击计数的功能了。但是这样并不完美,因为每次我们访问页面看到的都是上一次的计数,比如数据库中计数为0的话,你第一次打开它就直接显示0,可是你明明已经点击过了啊,应该是1才对。所以要在点击显示的代码中加上一个1:

Dreamweaver MX 2004做信息公告系统(4)详细内容页设计

  9、在设计数据库的时候大家就看到了,我专们设计了一个g_url的字段。这个字段的作用就是做一个URL转向,我们可以在公告的标题上直接链接到另一个URL地址而不用打开详细页面。有人会说这个简单啊,直接像做附件的链接一样在index.asp中就做一个动态链接嘛。当然我没有说这个方法不行,不过如果这样的话,又该怎样计算点击数呢?

  所以我用了另一个方法来解决这个问题,在showgg.asp的<html>标记之前加上这样一段代码:

Dreamweaver MX 2004做信息公告系统(4)详细内容页设计

<%
If (rsggshow.Fields.Item("g_url").Value)<>"" Then
Response.Redirect(rsggshow.Fields.Item("g_url").Value)
End If
%> 这里也做了一个判断,如果g_url字段不为空的话就转到g_url所在的网址。
Response.Redirect(A) 的意思是转到A这个页面。不过一定要注意,这一段代码一定要在点击计数的的代码之后。 这样又出现一个问题,在index.asp上点击标题后,如果g_url不为空,则就会转到g_url的页面,如果要返回首页岂不是只能点后退按钮?能不能用弹出窗口?当然是可以的,我们再打开index.asp,在代码视图中找到标题链接的那一段代码,在<a>标签中加入如下代码:

Dreamweaver MX 2004做信息公告系统(4)详细内容页设计

  <%If (rsgg.Fields.Item("g_url").Value)<>"" Then %>target="_blank"<% End If %>
这一句我就不解释了,看不懂的只有拖出去了…… 啊,终于把详细页也做完了。哎,好像不太对,预览的时候为什么会觉得怪怪的?噢,发现问题了,详细内容页面中的公告内容都显示为一个段落了,原来的空格和换行都不在了。这样也太不美观了吧!所以一定要解决这个问题。

  10、在showgg.asp的代码视图中,在<html>标签之前加上这样一段:

Dreamweaver MX 2004做信息公告系统(4)详细内容页设计

<%
Function HTMLcode(fString)
If Not IsNull(fString) Then
fString = replace(fString, ">", "&gt;")
fString = replace(fString, "<", "&lt;")
fString = replace(fString, "&#", "<I>&#</I>")

fString = Replace(fString, CHR(32), "<I></I>&nbsp;")
fString = Replace(fString, CHR(9), "&nbsp;")
fString = Replace(fString, CHR(34), "&quot;")
fString = Replace(fString, CHR(39), "&#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
%>
然后在下面页面中找到g_content所在的地方,把代码修改为:

Dreamweaver MX 2004做信息公告系统(4)详细内容页设计

<%= HTMLcode(rsggshow.Fields.Item("g_content").Value) %>
原创粉丝点击