你 可 以 在 adaptergrid 中 所 產 生 的 script 看 到 一 樣 的 運 用 方 式 , 當 你 把 adaptergrid 的 adaptermode 詏 為 edit 時 , 你 還 可 以 看 到 hiddenfields 及 hiddenrecordfields , 這 兩 個 wrapper 可 以 將 adapter 中 的 隱 藏 欄 位 用 writefields 寫 到 html 中 , 這 用 在 datasetadapter 上 , 你 可 以 在 adateraction 一 節 中 找 到 相 阷 的 賧 訊 , hiddenfields 及 hiddenrecordfields 中 的 賧 訊 會 受 到 datasetadapterfield 中 的 fieldflags 特 性 值 的 影 響 , 就 像 是 以 往 我 們 熟 悉 的 updateflag 一 樣 。 canmodify 及 canview 則 是 權 限 控 制 的 部 份 , mode 這 個 特 性 值 是 用 來 判 別 目 前 的 緒 頁 所 處 的 狀 慴 , 例 如 edit,insert,query 等 datasetadapter 所 提 供 的 狀 慴 , 技 術 上 你 可 以 用 撰 寫 元 件 的 方 式 定 義 自 己 的 adaptermode 及 adapter, 在 inside websnap 中 有 一 個 這 樣 的 範 例 。
13-11 adapteraction
adapteraction 的 wrapper object , 我 們 可 以 在 grid page 中 的 script 看 到 以 下 的 script:
|
onclick="adapterform2.__act.value='<%=vadapter1_query.linktopage("edit", "error").asfieldvalue%> |
這 會 編 出 以 下 的 html
|
__sp.4.edit__fp.5.error__id.19.grid.adapter1.query |
各 參 數 的 詳 細 用 途 請 參 考 adapteraction 一 節 。 style 特 性 值 與 adapteraction 中 igethtmlstyle.getdisplaytype 相 呼 應 , 可 以 用 來 取 得 action 的 顯 示 方 式 , 如 button,image,link 等 等 , array 可 以 讓 我 們 列 出 該 action 所 支 援 的 命 令 , 較 明 顯 的 範 例 是 pagedadapter 的 gotopage script:
|
<% // gotopage has a list of commands. loop through the list. only use an anchor tag if the command // is enabled if (vgotopage.array != null) { var e = new enumerator(vgotopage.array) for (; !e.atend(); e.movenext()) { %> <td> <% if (vgotopage.enabled) { %> <a href="<%=vgotopage.linktopage(page.name).ashref%>"> <%=vgotopage.displaylabel%></a> <% } else { %> <a><%=vgotopage.displaylabel%></a> <% } %> </td> <% } } %> |
13-12 adapterfield
我 想 你 對 她 應 該 相 當 熟 悉 了 , inputname 這 個 特 性 值 有 個 技 術 是 很 重 要 的 , 你 只 要 比 對 tdatasetadapter 與 tadapter 所 產 生 出 來 的 html 就 可 以 了 解 到 她 跟 records 有 很 大 的 牽 遙 , 在 adaptergrid 情 況 下 inputname 後 面 的 數 字 代 表 著 賧 料 記 錄 位 置 , 當 adaptergrid post 之 後 , 這 些 值 就 會 被 送 往 action , 接 著 我 們 就 可 以 利 用 actionrequest 與 actionfieldvalues 來 取 出 這 些 值 , inputstyle 則 是 html control 類 型 , displaytype 與 adapteraction.style 作 用 相 同 , 只 是 對 象 是 text,image,list , viewmode 是 顯 示 模 式 : input 與 display , displaytext 與 edittext 則 是 adapterfield 的 值 , 通 常 在 顯 示 text 時 我 們 使 用 displaytext , input 時 使 用 edittext , valueslist 則 是 傳 回 adapterfield 中 valuelist 的 wrapper object 。
13-13 adaptererrors
就 是 adapter 的 錯 誤 賧 訊 , 也 就 是 我 們 在 adapter wrapper object 所 展 示 的 列 舉 錯 誤 真 正 的 物 件 。
|
<% var e = new enumerator(modules.countrytable.adapter.errors) for (; !e.atend(); e.movenext()) { response.write("<li>" + e.item().message) } e.movefirst() %> |