2012-11-13 11 views
8

Ho un'applicazione Web che utilizza RadAjaxManager per popolare i controlli RadComboBox mentre un utente effettua selezioni su una delle mie pagine. Funziona correttamente la maggior parte delle volte, tuttavia circa il 10% del tempo in cui la chiamata AJAX sembra sparare, ma nessun valore viene caricato nel RadComboBox di destinazione. Se il browser è chiuso e la pagina a cui si accede nuovamente, questo comportamento sembra continuare, ma dopo alcuni minuti e un altro aggiornamento del browser, tutto funziona ancora una volta.RadAjaxManager Richiesta AJAX non riesce Circa il 10% del tempo

Qui ci sono le impostazioni Ajax per la RadComboBox avvio della richiesta AJAX:

<telerik:AjaxSetting AjaxControlID="rcmbMarket"> 
     <UpdatedControls> 
      <telerik:AjaxUpdatedControl ControlID="rcmbApplicationField" 
       LoadingPanelID="RadAjaxLoadingPanel1" /> 
      <telerik:AjaxUpdatedControl ControlID="ApplicationFieldSource" 
       LoadingPanelID="RadAjaxLoadingPanel1" /> 
     </UpdatedControls> 
    </telerik:AjaxSetting> 

Ecco il markup per le caselle di avvio e combinate traget:

<asp:TableRow HorizontalAlign="Center" ID="ProductRow3"> 
    <asp:TableCell Width="25%" HorizontalAlign="Left" ID="MarketLabelCell"> 
     <asp:Label ID="lblMarket" runat="server" Text="Market: "></asp:Label> 
     <asp:RequiredFieldValidator ID="vldMarket" runat="server" ControlToValidate="rcmbMarket" 
      ErrorMessage="*" ForeColor="Red" SetFocusOnError="true" ValidationGroup="grpMain"></asp:RequiredFieldValidator> 
    </asp:TableCell> 
    <asp:TableCell Width="25%" HorizontalAlign="Left" ID="MarketDDLCell"> 
     <telerik:RadComboBox ID="rcmbMarket" runat="server" AllowCustomText="false" DataSourceID="MarketSource" AutoPostBack="true" CausesValidation="false" 
      DataTextField="MarketDesc" DataValueField="pkMarketID" AppendDataBoundItems="true" OnSelectedIndexChanged="Market_Check"> 
      <Items> 
       <telerik:RadComboBoxItem Text="" Value="" /> 
      </Items> 
     </telerik:RadComboBox> 
     <asp:SqlDataSource ID="MarketSource" runat="server" ConnectionString="<%$ ConnectionStrings:QuoteProdConn %>" SelectCommand="SELECT pkMarketID, MarketDesc FROM Data.Market WHERE Active = 'True' ORDER BY MarketDesc ASC"></asp:SqlDataSource> 
    </asp:TableCell> 
    <asp:TableCell Width="25%" HorizontalAlign="Left" ID="ApplicationLabelCell"> 
     <asp:Label ID="lblApplicationField" runat="server" Text="Application Field:"></asp:Label> 
     <asp:RequiredFieldValidator ID="vldAppField" runat="server" ControlToValidate="rcmbApplicationField" 
      ErrorMessage="*" ForeColor="Red" SetFocusOnError="true" ValidationGroup="grpMain"></asp:RequiredFieldValidator> 
    </asp:TableCell> 
    <asp:TableCell Width="25%" HorizontalAlign="Left" ID="ApplicationTextCell"> 
     <telerik:RadComboBox ID="rcmbApplicationField" runat="server" AllowCustomText="false" DataSourceID="ApplicationFieldSource" ExpandDirection="Down" 
      AutoPostBack="true" DataTextField="AppDescription" DataValueField="pkAppFieldID" AppendDataBoundItems="true" CausesValidation="false" MaxHeight="300px"> 
      <Items> 
       <telerik:RadComboBoxItem Text="" Value="" /> 
      </Items>  
     </telerik:RadComboBox> 
     <asp:SqlDataSource ID="ApplicationFieldSource" runat="server" ConnectionString="<%$ ConnectionStrings:QuoteProdConn %>"></asp:SqlDataSource> 
    </asp:TableCell> 
</asp:TableRow> 

ecco il codice dietro per la Market_Check sub chiamato quando l'indice selezionato della casella combinata di mercato viene modificato:

Protected Sub Market_Check(ByVal sender As Object, ByVal e As System.EventArgs) 

    Dim tmpItem As New Telerik.Web.UI.RadComboBoxItem("", "") 
    ApplicationFieldSource.SelectCommand = "SELECT pkAppFieldID, AppDescription FROM Data.ApplicationField WHERE Active = 'True' AND fkMarketID = " & rcmbMarket.SelectedValue.ToString() & " ORDER BY AppDescription ASC " 
    ApplicationFieldSource.DataBind() 
    rcmbApplicationField.Items.Clear() 
    rcmbApplicationField.Items.Add(tmpItem) 
    rcmbApplicationField.DataBind() 

End Sub 

È tutto piuttosto semplice, quindi non sono davvero sicuro del motivo per cui questo problema sta accadendo. Qualsiasi aiuto sarebbe apprezzato.

+0

Se non si ottiene una risposta - Telerik è molto bravo a rispondervi –

+0

Stai usando RadCompression? Se è così, ho scoperto che a volte può causare problemi simili. http://www.telerik.com/help/aspnet-ajax/compression.html – msigman

+0

Puoi includere dettagli sul tuo ambiente come IIS e .NET. – DaveHogan

risposta

0

Provare ad aggiornare anche ApplicationFieldSource con Telerik Ajax.

Comunque questo approccio è molto difficile, oggi, avete così tanto client server tecnologie di gran lunga molto meglio di RadAjaxManager/MS ASP.NET AJAX, per esempio semplice chiamata jQuery per semplice webservice.

0

Hai provato a verificare la proprietà di richiesta e risposta con FireBug (scheda Rete) o Fiddler? Ciò può fornire ulteriori informazioni se ciò accade con alcuni valori selezionati di elementi rcmbMarket (ad esempio alcuni dati non validi nel database). Inoltre, controlla se la pagina non è troppo pesante per la pubblicazione. RadAjaxManager pubblica la pagina intera anche in una richiesta Ajax.

Problemi correlati