loopfield标签
loopfield标签用于输出键值对,比如数据库的一条记录、Request.QueryString、Request.Form等。
举例
```brush:html
{:$rs=B_("Content").field("ContentID,Title,AddTime").find}
```
上例中从文章数据表(Content)中取出一条记录,循环展示字段名、字段值。上例如果写成asp代码的话,如下
```brush:html
<%
<%
dim rs,i
set rs = B_("Content").field("ContentID,Title,AddTime").find
%>
字段名 | 字段值 |
<%
for i = 0 to rs.fields.count-1
%>
<%=rs.Fields(i).Name%> | <%=rs.Fields(i).value%> |
<%
Next
%>
%>
```
从上例中,使用原生的asp代码虽然也能实现目的,但是比起POPASP的模板引擎代码略显繁琐,对开发者的技能要求更高,虽然学习POPASP的模板引擎需要花一点时间,但是比起后续的开发来说,开谓磨刀不误砍柴功。
### loopfield的参数说明
loopfield这个标签最初是从loopdb中引申出来的,所以二者的参数也相同。
```brush:html
'
'
```
### 可以用于loopfield取数据的方法
一般来说,loopfield使用并不像loopdb那样广泛,可以使用的方法,一般就是取一条记录的方法:
|方法名 |结果类型 |备注|
|----|----|----|
|find |Recordset |取一条记录|
|first |Recordset |取第一条记录|
|last |Recordset |取末一条记录|
|getN |Recordset |取第N条记录|
|getRow |Dictionary |取一条记录|
|getKeyValue |Dictionary |取键值对,3.1添加|
|getObject |POPASP_SELF_OBJECT |自定义对象,3.1添加|
|getFields |Dictionary |getFields(fields)|
|Search |Recordset|搜索,getRand(q,fields)|
由于Recordset对象的特殊性,适用于loopdb方法的Select与Search方法也可用于loopfield
|方法名 |结果类型 |备注|
|----|----|----|
|select |Recordset |配合POPASP_POSITIONPAGE完成分页|
|Search |Recordset|搜索,getRand(q,fields)|
如果在循环体中取具体某个字段的值,可使用`@field`,取序号值可使用`$__index`
### loopfield的拓展
loopfield不仅可以对一维Dictionary对象、POPASP_SELF_OBJECT对象、Recordset对象进行循环展示,而且还可以循环如下几种类型
|数据名称 |标识符值 |结果类型 |备注|
|----|----|----|
|request.QueryString|request.querystring|IRequestDictionary |QueryString 集合用于取回 HTTP 查询字符串中的变量值|
|request.Form|request.form|IRequestDictionary|用于从使用 POST 方法的表单获取表单元素的值|
|request.ServerVariables|request.servervariables|IRequestDictionary|用于取回服务器变量的值|
在这种情况使用的时候第一、第二个参数不用分配值。
举例
```brush:html
```
### loopfield的嵌套
loopfield不仅可以跟loopfield嵌套,也可以跟if等其他块标签相互嵌套,用法同loopdb,不再举例。