2012-03-08 27 views
3

我對顯示搜索字段結果的多米諾視圖有重複控制。重複控制中僅列出一個文檔時自動打開文檔

當您在搜索字段中鍵入更多字符時,列表中的項目數量會減少。如果/當列表中僅包含一個項目,我想自動打開項目,而無需單擊該鏈接。

任何想法表示讚賞。

編輯:經過一些非常有趣的反應,這裏有一些截圖

我在網頁上有3個元素,一個搜索欄,重複控制和形式:

enter image description here

當我開始打字在搜索欄中,重複刷新與每個按鍵:

enter image description here

列表減少,鍵入下一個字符...

enter image description here

再次名單減少,只有2個左右,再輸入....

enter image description here

只剩下一個,現在就可以在沒有點擊鏈接的情況下打開文檔了。

我已經在頁面上嘗試了幾個事件,但似乎找不到能讓我「選擇」文檔並在窗體中顯示數據的那一個。

看來,它不是那麼簡單,因爲我以爲

+0

這實際上是一個不錯的自定義控件:重定向重複 - 似乎可以在很多地方 – stwissel 2012-03-09 07:50:25

回答

0

你可以添加一個評估腳本重複控件的入口,檢查重複控件使用該組件的方法getRowCount()的大小。如果這是1,則可以執行context.redirectToPage(「yourpage.xsp?id = yourid」,true),這會強制當前頁面將重定向請求發送回瀏覽器,並因此將您重定向到正確的頁面。

所有你需要知道的是你需要打開哪個xpage以及你應該使用哪些參數。但是這些可以從您正在迭代的內容中檢索。

+0

被重用,但如何(以及其中重複控制)我加評價腳本的模式?你能提供一個小樣本嗎? THX托馬斯 – 2012-03-08 13:11:22

2

既然你想自動打開鏈接,我不知道我是否會嘗試將它基於重複自身的getRowCount()。你甚至不想讓那麼遠?你只想去單個文件。 我把一個函數beforePageLoad事件可能。不完全確定哪個活動,但我會先嚐試。使用SSJS並做了查找,將基本上回歸什麼樣的重複會顯示一個集合。如果集合數= 1然後從該項目獲取您的目的地,並從那裏做你的重定向。

那我至少會嘗試。有趣的場景!

+0

大衛你好,很高興在這裏看到你,好幾個小時的閱讀(和聽力),你的東西了XPages中後。那麼它不太簡單。我在我的應用程序中結合了很多你(和其他人)的提示。 – 2012-03-08 18:48:13

+0

您能否請張貼一些代碼,以便我們可以根據我們的答案?你從哪裏得到你的數據(重複的數據源)等。 – jjtbsomhorst 2012-03-08 21:00:27

+0

這裏有更多的細節。該頁面有幾個元素:重複(基於多米諾骨牌視圖),一個包含文檔細節的表單。重複包括打開表單中文檔的鏈接。重複視圖由搜索欄過濾,每次擊鍵都會更新。鍵入搜索欄搜索值減少了重複列的數量,我想盡快顯示文檔的細節,因爲只有一個留在重複控制一行。所以我需要一種事件處理程序,在面板的每次刷新時都會啓動,檢查重複計數。 – 2012-03-09 07:43:52

1

現在我看到了截圖,這可能會更容易,那麼你認爲我已經在我已經構建的內部應用程序上實現了類似的東西。它確實依賴於列表中的每個條目都是100%唯一的事實。

首先你需要將搜索字段綁定到範圍變量和的onchange/onkeypress事件事件將需要執行一個同時包含列表和頁面的文檔部分的面板的局部刷新的。

對於列表中的每個項目的鏈接應該設置在搜索框中使用的相同範圍的變量的值,然後單擊鏈接應設置爲運行文檔區域的局部刷新。

對於文檔區域,您將需要兩個面板,第一個面板只會在沒有匹配的文檔時顯示,第二個面板只有在有匹配的文檔時纔會顯示,您可以通過編寫一些ssjs抓取db/view的句柄並執行dblookup,如果文檔依賴於你處理的面板而存在,則返回true或false。

採用這種設置,當有人點擊一個鏈接或填寫的搜索框的範圍變量將包含一個值,文檔面板會再檢查,看看是否是在數據庫視圖中的獨特價值,並更新自己或者相應地顯示「無文檔」面板或「文檔」面板。

+0

嗨Declan,也許是一個誤會。幾乎你所描述的所有事情都已經完成了,唯一的問題是,如果重複只包含一行,我想在表單面板中顯示剩餘條目的數據。在重複控件中顯示的行是基於全文的搜索,不只是在列/鍵值,所以我怎麼可能做一個DbLookup,具有完全相同的結果? Thx托馬斯 – 2012-03-09 14:23:29

+0

啊,你從來沒有說過這是一個全文檢索。讓我考慮一下,看看我能想出什麼。 – 2012-03-09 14:59:20

相關問題