动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   网页设计 → 阅读文章

 用NoahWeb表现层制作动态网站 - 第五天

作者来源: 
阅读 数 631 人次 , 2006-4-25 15:14:00 

回忆一下吧,昨天我们实现了从数据库把内容动态显示到页面上。用到了两个NoahWeb表现层的指令。

一个是

<!-- NoahLoopStart SQLLinkId="mynews_S_All" AutoMode="True" AutoReset="True" NewRunMode="False" --><!-- NoahLoopEnd -->

该指令通俗点说就是根据数据库操作返回的结果行数产生循环,循环的内容就是Start标签和End标签之间的内容。比如查询返回的内容有6行,那么就会将此标签所包含的内容产生6次循环。而SQLLinkId属性就是指定根据那一个数据库操作来产生循环,我们现在使用的是"mynews_S_All",那就表示会根据mynews_S_All这个操作集的返回结果来产生循环。

接着我们看另外一个指令

<!-- NoahValue ValueName="[_LOOP.*.title]" MaxChar="" DChar="" Safety="False" -->

<!-- NoahValue ValueName="date('O',mktime([_LOOP.*.newdate]))" MaxChar="" DChar="" Safety="False" -->

这两个指令是同一个指令标签,昨天的课程已经和大家讲过NoahValue指令是用来回显变量内容到该标签所在的位置的,这两个标签内的ValueName是不相同的,一个是"[_LOOP.*.title]"另一个是"date('O',mktime([_LOOP.*.newdate]))"。

我们先看一下"[_LOOP.*.title]",在NoahWeb中用"[]"来包住的内容都是一个变量内容,而变量内容又通过变量前缀关键词来区分访问不同种类的变量。我们在这用到的是_LOOP变量前缀关键词。_LOOP从字意上就能理解它指的就是指产生当前这个循环的数据库操作,_LOOP后面的"."是分割符号,'*'指是就是循环时所指示的行,最后的title就是指的数据库字段"title"中的内容。发散思维想一想就可以知道,如果我要返回的不是数据库中的title,而是newcontent,则就写成"[_LOOP.*.newcontent]",如果是访问author就写成"[_LOOP.*.author]",如此照搬就行,其实很容易。

再来看另一段指令中的ValueName内容,我们一开始写的时候是直接写成"[_LOOP.*.newdate]"了,按我们刚才的学的就知道这是返回数据库中的newdate这个字段。可是显示出来的日期会显示出"YYYY-MM-DD hh:mm:ss"这样的格式,显示的时候我只想要显示出"YYYY-MM-DD"部分,所以使用了NoahWeb的两个日期函数来返回该部分,NoahWeb的函数和PHP的很接近,使用过PHP的人不会对这样的函数格式陌生。

上面是昨天遗留没讲的内容,下面接着讲今天要讲的内容。

我们现在已经做出新闻列表,剩下的工作就是点击查看某条新闻以后能显示出新闻的详细内容。传统的做法是另外建一个新的页面,比如新建一个"content.aspx"这样的页面来做。可是我们今天可以用一下NoahWeb中很有意思的一个新东西“动作”来做。有关“动作”的理论内容比较长,在这我就不多说了。有兴趣的同学可以上官方站点看看文档,我们今天仅是讲一下在表现层里怎么使用。

我们先把昨天的新闻列表的代码继续修改成一个HTML中的超链接。修改的方式如下

用NoahWeb表现层制作动态网站 - 第五天(图一)

在显示<!-- NoahValue ValueName="[_LOOP.*.title]" MaxChar="" DChar="" Safety="False" -->前后加上<a href="">和</a>

这样在浏览器里显示出来的就是一个带链接的列表。如下:

用NoahWeb表现层制作动态网站 - 第五天(图二)

然后我们来指定一下链接后打开的地址,方式是把<a href="">写成<a href="default.aspx?action=view&newsid=<!-- NoahValue ValueName="[_LOOP.*.id]" MaxChar="" DChar="" Safety="False" -->">,内容的意思是链接打开的地址是default.aspx,并且传递一个名为action的变量等于view,action是NoahWeb中默认的动作变量名,这样的话就会激发view的动作,连接的地址内容上还带一个名为newsid的变量值。传递的是新闻表中的id字段内容,如下

用NoahWeb表现层制作动态网站 - 第五天(图三)

存盘以后在浏览器里打开的就是

<tr>
<td><a href="default.aspx?action=view&newsid=1">有关MYSITE的开发消息</a>(2005-06-21)</td>
</tr><tr>
<td><a href="default.aspx?action=view&newsid=2">MYSITE所使用技术</a>(2005-06-21)</td>
</tr><tr>
<td><a href="default.aspx?action=view&newsid=3">开发周期安排</a>(2005-06-21)</td>
</tr><tr>
<td><a href="default.aspx?action=view&newsid=4">MYSITE其他安排</a>(2005-06-21)</td>
</tr><tr>
<td><a href="default.aspx?action=view&newsid=5">招聘公告</a>(2005-06-21)</td>
</tr><tr>
<td><a href="default.aspx?action=view&newsid=6">10日发薪水通告</a>(2005-06-21)</td>
</tr>

类似上面的代码。

接下来我们为了让同一个页面又能显示列表又能显示指定ID的新闻我们在DW中继续对default.aspx做改动。

新加一个HTML的表格在里面用来准备显示新闻的内容。具体如下图:

用NoahWeb表现层制作动态网站 - 第五天(图四)

这样在保存以后在浏览器中显示的结果如下图:

用NoahWeb表现层制作动态网站 - 第五天(图五)

为了让新闻显示的部分只出现在执行动作view的时候,我们可以DW来帮助我们插入另一个指令"NoahWeb Objects"下的"NoahIfAction",具体方式如下:

用NoahWeb表现层制作动态网站 - 第五天(图六)

然后在Action属性里输入"view",如下图:

用NoahWeb表现层制作动态网站 - 第五天(图七)

这样就表示当执行动作view的时候才会显示此部分内容,我们可以存盘以后在浏览器里刷新一下,看看输出的样子,如下:

用NoahWeb表现层制作动态网站 - 第五天(图八)

  
 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:如何才能做好一个垂直搜索引擎
· 下一篇:Google的PR值有什么用?
· FrontPage教程-设置页属性
· css新手上路(3)
· 域名选取十技巧
· 页面美工设计需要注意的几点
· Dreamweaver MX 2004从零开始(4)


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077