我想知道是否可以單擊我的XPage中的按鈕並動態創建Domino視圖,然後在同一頁面上的面板控件中顯示它。我想這樣做的原因是因爲我有一個分類視圖,我不想通過使用全文搜索來丟失分類數據。所以我正在考慮動態創建一個新視圖,並將我的搜索參數(如結束日期或開始日期)傳遞到視圖選擇公式中。在XPages中動態創建多米諾骨牌視圖
可能嗎?任何其他解決方案也是受歡迎的。
我想知道是否可以單擊我的XPage中的按鈕並動態創建Domino視圖,然後在同一頁面上的面板控件中顯示它。我想這樣做的原因是因爲我有一個分類視圖,我不想通過使用全文搜索來丟失分類數據。所以我正在考慮動態創建一個新視圖,並將我的搜索參數(如結束日期或開始日期)傳遞到視圖選擇公式中。在XPages中動態創建多米諾骨牌視圖
可能嗎?任何其他解決方案也是受歡迎的。
是的,你可以,但你不想。一個Domino視圖在數據庫中佔用空間並且在第一次使用時有相當長的一段時間。所以最終你會得到很多意見,並且需要在刪除後調整數據庫空間。你的迴應時間會吸引很多時間。
Notes視圖中顯示的類別爲no web interaction pattern,因此您可能想要解決實際上不應存在的問題。
Domino應用程序的首選方法是通過搜索進行導航/深入查詢。但是,您可以在FTSearch中將類別添加到搜索參數中,並將結果呈現爲重複控件而不是視圖控件。你可以更好地控制外觀和感覺。
無論它是否是最好的解決方案,關於即時創建視圖的直接問題的答案是肯定的:Database類有一對「createView」方法允許您創建新視圖,完全從從頭開始或基於命名的其他視圖。從那裏,你可以在創建的視圖中使用「setSelectionFormula」和「createColumn」方法來構建你想要的。你不能用這些方法來做任何事情,但它可能就足夠了。
您可能遇到的一個問題是ACL訪問:您需要數據庫的Designer權限,而普通用戶最有可能不具備這些權限。如果使用sessionAsSigner對象來獲取數據庫的簽名版本(比如「var signerDB = sessionAsSigner.getDatabase(database.getServer(),database.getFilePath())」),那麼可以從那裏開始工作。除了我的頭頂,我不記得是否還需要將ACL的最後一個選項卡上的「最大Internet訪問」設置設置爲「設計器」,但您可能會這樣做。
sessionAsSigner可能會攻克ACL - 但在動態創建視圖時不是一個好主意 – stwissel
ACL不是問題 - 您可以使用sessionAsSigner或代理運行代理...性能是問題所在。對於大數據用戶可以等待幾分鐘來爲視圖建立索引。在最壞的情況下(涉及信號量)它可能毀掉整個服務器。 –
我假設您指的是基於類別選擇文檔時存在的問題。這是我覺得非常惱人的事情,我希望能夠打開和關閉這個功能。它對於嵌入式視圖是有意義的,但對其他內容來說則不是。
我解決這個問題的方法是在下一列中包含類別值。通過這種方式,文本仍然可以看到,即使它是一個平面視圖。
或者,您也可以考慮使用中繼器控制並創建自己的信息呈現方式。這將被用來代替(動態)ViewPanel控件。只要它在視圖集中返回,您就可以以任何方式呈現信息。
快樂編程!
您可能也有問題,因爲視圖索引不會被構建。充其量它會等待並且可以超時/不返回任何東西。 –