I have a search page, which searches various sources (dynamically determined at runtime).
I would like to have a results area per source that updates as the search source completes. The setup that I have at the moment is not working.
Any help or advice will be greatly appreciated.
The trigger:
The script:
The markup:
The server code:
I would like to have a results area per source that updates as the search source completes. The setup that I have at the moment is not working.
Any help or advice will be greatly appreciated.
The trigger:
<telerik:RadTextBox ID="searchTerm" runat="server" SkinID="formText" CssClass="formField" /> <telerik:RadButton AutoPostBack="false" ID="searchSubmit" UseSubmitBehavior="false" runat="server" Text="Search" OnClientClicked="search" />The script:
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script type="text/javascript"> function search() { var panelSourceMap = $.parseJSON($('#<%= textPanelSourceMap.ClientID %>').val()); var query = $('#<%= searchTerm.ClientID %>').val(); for (var i in panelSourceMap) { var panel = $find(panelSourceMap[i].Key); var sourceName = panelSourceMap[i].Value; if (panel != null) { panel.ajaxRequest(query); } } } </script></telerik:RadCodeBlock>The markup:
<telerik:RadPanelBar ID="resultsPanelBar" runat="server" ExpandMode="FullExpandedItem" > <ItemTemplate> <h2>SomeText</h2> <telerik:RadAjaxPanel RequestQueueSize="10" LoadingPanelID="searchLoadingPanel" ID="resultsUpdatePanel" runat="server" Height="200px" Width="300px"> <selfsvc:SearchResults ID="searchResult" runat="server" /> </telerik:RadAjaxPanel> </ItemTemplate></telerik:RadPanelBar>The server code:
void resultsPanelBar_ItemDataBound(object sender, Telerik.Web.UI.RadPanelBarEventArgs e){ string sourceName = ((KeyValuePair<string, string>)e.Item.DataItem).Key; RadAjaxPanel panel = (RadAjaxPanel)e.Item.FindControl("resultsUpdatePanel"); if (panel != null) { selfService.UserControls.SearchResults results = (selfService.UserControls.SearchResults)panel.FindControl("searchResult"); if(results != null) results.SourceName = sourceName; clientPnlSrcMap.Add(panel.ClientID, sourceName); panel.AjaxRequest += new RadAjaxControl.AjaxRequestDelegate(panel_AjaxRequest); }}