好了。休息了一天,现在有精神多了!同学们是否还记得昨天我们学的东西?
回忆一下吧,昨天我们实现了从数据库把内容动态显示到页面上。用到了两个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"这样的格式,显示的时候我只想要显示出"