This is a migrated thread and some comments may be shown as answers.

radAjaxPanel.ajaxRequest(args) is alway synchronous

1 Answer 169 Views
Ajax
This is a migrated thread and some comments may be shown as answers.
Rob
Top achievements
Rank 1
Rob asked on 09 Jun 2011, 07:23 PM
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:
<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);
 
    }
}

1 Answer, 1 is accepted

Sort by
0
Rob
Top achievements
Rank 1
answered on 10 Jun 2011, 02:35 PM
I solved this by using radXMLhttpPanel
Tags
Ajax
Asked by
Rob
Top achievements
Rank 1
Answers by
Rob
Top achievements
Rank 1
Share this question
or