渲染變量僅在頁面渲染時被評估。三種方式他們纔會重新評估:
- 用戶點擊一個按鈕被設置爲「重新提示」
- 用戶選擇從具有其提示的值「自動提交」屬性設置爲「是「,並且尚未提供必需的提示。
- JavaScript是發射時再次提示頁面
1號工作,但你需要用戶到每一個頁面需要刷新時間點擊一個按鈕
2號會,如果你的工作不提供非常好的易用性正在按照要求提示。如果提示是可選的,則當'自動提交'提示設置爲'是'時提示整個提示頁面將被提交。有一個技巧可以使用,涉及一個隱藏的提示,可以解決這個問題,但很麻煩。
3號是最好的選擇,因爲它給你最大的控制。值得慶幸的是,由於Cognos 10.2提供了一個記錄和支持的JavaScript API,因此可以使其變得相當簡單和受支持。以下是步驟:
- 給出提示*的名稱,以便在值更改時觸發重新提示。
- 將新的HTML項目添加到提示頁面的底部。
- 添加以下JavaScript作爲表達:
var report = cognos.Report.getReport("_THIS_");
var prompt = report.prompt.getControlByName("prompt_name"); //Substitue the prompt name you set in step one for the string "prompt_name"
var currentvalue = prompt.getValues()[0].use;
prompt.setValidator(validatePrompt); //Sets a function to validate the prompt on change
function validatePrompt(values) {
if (values && values.length > 0 && values[0].use != currentvalue) {
currentvalue = values[0].use;
report.sendRequest(cognos.Report.Action.REPROMPT); //Reprompt the page
}
}
的代碼添加驗證功能,當值被改變,這將刷新頁面的提示。根據此值設置初始值和字母檢查的代碼用於防止不必要的刷新,因爲Cognos會在幕後多次啓動對提示的驗證。除非用戶實際更改提示的值,否則不需要刷新頁面。
*此提示應該是文本提示以外的內容,因爲每次按鍵時都會發生文本提示驗證,因此每輸入一個字母都會發生刷新。該技術最適用於價值提示,如列表,下拉菜單或單選按鈕組。