Overview: 
To allow a search box on a header or a search page submission to pass via the URL the search term to a target XPage containing a view and automatically filter the view's content based on the search word or phrase. If nothing is passed on the URL, the view should show everything. 
 
Steps: 
1a. Create an Edit Box to be used as the search box with the following properties: 
Edit Box tab: 
Name: searchText 
Data tab: 
Bind data using: Advanced 
Use: Scoped Variable 
- Parameter: View Scope 
- Variable name: searchValue 
- Default: Search ... 
 
1b. Update the events for the box so that adding text and clicking <enter> key performs the search: 
Events tab: 
- Client tab: 
Add the following code into the Script Editor: 
onkeypress: 
if (thisEvent.keyCode != '13') { 
	return false; 
} 
 onkeypress: 
var me = document.getElementById("#{id:searchText}");me.value = ""; 
- Server tab: 
-- Simple Action 
-- Open Page 
-- Add the following code Server Side JavaScript code into the Script Editor: 
if(compositeData.searchPage!=null){ 
	return compositeData.searchPage+"?open&searchValue=" + viewScope.searchValue; 
}else{ 
	// get target page from resources file 
	tmppg = '/' + layout.getString("search.searchPage"); 
	print (tmppg); 
	print (facesContext.getExternalContext().getRequestServletPath()); 
	return (tmppg + '?open&searchValue=' + viewScope.searchValue); 
	// following code uses current page instead, current page has to be coded for this search string passed 
	//return facesContext.getExternalContext().getRequestServletPath()+"?open&searchValue=" + viewScope.searchValue; 
} 
 
3. In the target XPage with the view, click on the view's view panel object. 
e.g. View:viewPanel1 
 
4a. Under the Properties tab, select the All Properties tab on the left. 
4b. Open the data twistie (xp:dominoView), click the blue diamond for the search option, and select computed value... . 
4c. Add the following JavaScript Server Side code: 
context.getUrlParameter("searchValue"); 
  
previous page
 
  |