您的位置: 首页 > 技术文档 > 网络编程 > 用NoahWeb表现层制作动态网站
4天学会 NoahWeb 表单 回到列表 Dreamweaver 数据库路径的使用
 用NoahWeb表现层制作动态网站

作者:jasoncode 时间: 2005-06-23 文档类型:原创 来自:蓝色理想

第 1 页 用NoahWeb表现层制作动态网站 第一天
第 2 页 用NoahWeb表现层制作动态网站 第二天
第 3 页 用NoahWeb表现层制作动态网站 第三天
第 4 页 用NoahWeb表现层制作动态网站 第四天
第 5 页 用NoahWeb表现层制作动态网站 第五天

回忆一下吧,昨天我们实现了从数据库把内容动态显示到页面上。用到了两个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中的超链接。修改的方式如下

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

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

然后我们来指定一下链接后打开的地址,方式是把<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字段内容,如下

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

<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的表格在里面用来准备显示新闻的内容。具体如下图:

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

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

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

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

显示内容的表格在default.aspx默认打开的已经不显示,只有当我们点中其中某条新闻链接后才会看到下面的内容,如图:

我们如果把新闻列表的这个表格也用一个动作指令来划分的话,就可以让执行view动作的时候不显示出列表,操作方法如下:

这次插入后不用在Action的属性里填写任何内容,这样也就表示在不执行任何动作的时才执行该部分代码,存盘保存以后刷新浏览器就能看到下面的结果:

OK,现在就差一步了!把要选择的新闻内容显示在这个表格里,我们还是仅借助一下NoahLoop指令和NoahValue指令配合查询集就能做到,为了此目的,我们还是再通过设计器建一个数据库操作集出来,不知道大家是否还记得怎么建呢?我放几张截图吧,大家看看图回忆一下,话就不多说了。

请看截图:

第一步:建一个操作集

第二步:修改操作集的各种参数,被修改过的地方我用红圈标记出来,注意一下,这次我加了一个局部变量的内容,并加了一个查询的条件。

第三步:保存以后看到操作集中出现下面的内容。

上面的操作就相当于我们写了一个"select * from mynews where id='[newsid]'"的数据库查询。

然后我们继续在DW中对显示新闻内容的表格插入NoahLoop指令,具体操作我们以前也做过,现在还是回忆一下,如下:

当执行完插入操作以后因为我们准备调用的mynews_S_newid是需要传递一个局部变量的,所以这次我们使用NoahWeb设计器自带的辅助功能来获得LoopStart的代码,方式很简单,就是在设计器中操作集"mynews_S_newid"上面用鼠标右键点出辅助功能,如下图:

然后设计器就会为我们生成一段代码放入计算机的剪贴板中。我们把他直接贴到DW中替换掉刚才新建的LoopStart指令,如下图:

仔细看的话会发现,贴进去的代码除了帮我们自动填写了SQLLinkId成为"mynews_S_newid"外,还多了一个Value属性,我们现在需要的就是填写一下这个属性。

那应该填写什么内容呢?我们这样做是为了显示出新闻的内容,而这部分代码又只有在执行view动作的时候才被执行,为了显示新闻我们已经通过了链接传递了一个叫newsid的变量过来。现在我们就是需要填写这个变量作为查询的条件,具体写法如下:

我们刚才已经讲过"[]"在NoahWeb表示的都是变量,而现在的_root又是一个变量前缀关键词,表示的是访问全局变量内容或是客户端用GET和POST方式提交上来的变量值。这样我们就可以在这获得从地址上面传递进来的newsid的值内容。并传递给数据库操作集去进行查询。

接下来把表格内的文字

"标题部分"用之前学过的方式替换成<!-- NoahValue ValueName="[_LOOP.*.title]" MaxChar="" DChar="" Safety="False" -->

"新闻内容部分"也替换成<!-- NoahValue ValueName="[_LOOP.*.newcontent]" MaxChar="" DChar="" Safety="False" -->

OK,大功告成!

保存以后在浏览器里刷新一下

怎么样可以看到内容了吧!这样就完成了。我们可以重新进入一下,看一下默认进来的时候是如下的:

然后这次我点一下"MYSITE所使用的技术",看到内容就是

这个是动态页面的做法,小弟近期使用下来对NoahWeb表现层的感觉是熟悉DW的人可以非常快的通过DW开发出动态站点,灵活使用设计器配合DW开发起来更加容易。表现层里面还有大半指令没有提到大家有兴趣可以自己学一下,每个都非常有用,而且编写时也类似这样的方式,最近小弟还在学习NoahWeb逻辑层的东西,过段时间再写教材给大家共享。谢谢各位同学的捧场!有不足的地方也请同学们多多包涵!

出处:蓝色理想
责任编辑:蓝色

上一页 用NoahWeb表现层制作动态网站 第四天 下一页

◎进入论坛网络编程版块参加讨论

作者文章
多种Web脚本语言下的日历实现
4天学会 NoahWeb 表单
表单制作方式大比拼
用NoahWeb表现层制作动态网站
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule
>> 分页 首页 前页 后页 尾页 页次:5/51个记录/页 转到 页 共5个记录 分享按钮

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2