紅 色 的 部 份 在 使 用 時 要 特 別 小 心 , 因 為 page 中 不 一 定 要 有 defautlaction , 因 此 她 有 可 能 是 空 值 , 而 且 取 得 defaultaction 會 引 發 page module 的 自 動 建 立 動 作 , canview 及 loginrequired 是 用 來 管 理 使 用 者 及 權 限 控 制 用 。
13-9 producer
技 術 上 她 與 response 大 致 相 同 , 只 是 它 可 以 寫 入 html tag:
|
<h3><%producer.write('我是 <#nametag>')%></h3> |
接 著 你 就 可 以 在 producer 的 onhtmltag 事 件 中 取 代 這 個 tag , 如 果 寫 入 的 賧 料 不 是 html tag 的 話 , 使 用 response 會 較 有 效 率 。
13-10 adapter
標 準 的 adapterwrapper , 指 的 是 tadapter 或 是 tdatasetadapter 等 , 她 提 供 了 fields,actions 兩 個 列 舉 器 , 我 們 可 以 經 由 她 們 列 出 adapterfields 及 adapteractions:
|
<% adlist=new enumerator(application.fields) s = '' for (; !adlist.atend(); adlist.movenext()) { s+='<h3>'+adlist.item().name+'</h3>' } response.write(s) %> <% adlist=new enumerator(application.actions) s = '' for (; !adlist.atend(); adlist.movenext()) { s+='<h3>'+adlist.item().name+'</h3>' } response.write(s) %> |
當 一 個 緒 頁 執 行 了 action 後 發 生 錯 誤 導 向 錯 誤 緒 頁 時 , 我 們 可 以 利 用 她 的 errors 來 取 出 錯 誤 訊 息 :
|
<% var e = new enumerator(modules.countrytable.adapter.errors) for (; !e.atend(); e.movenext()) { response.write("<li>" + e.item().message) } e.movefirst() %> |
當 使 用 的 adapter 有 多 筽 賧 料 時 , 例 如 tdatasetadapter 跟 之 前 我 們 所 撰 寫 的 myadapter , 我 們 可 以 利 用 records 列 舉 器 來 移 動 記 錄 位 置 :
|
<%var e = new enumerator(vdsadaptcust.records) for (; !e.atend(); e.movenext()) { %> <tr> <% if (vdsadaptcust_filter.visible) { %> <td><div><% obj=checkboxgroup(vdsadaptcust_filter, vdsadaptcust_filter.inputname, 1, '')%><%=obj.text%></div></td><% } %> |