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.
Se non si ottiene una risposta - Telerik è molto bravo a rispondervi –
Stai usando RadCompression? Se è così, ho scoperto che a volte può causare problemi simili. http://www.telerik.com/help/aspnet-ajax/compression.html – msigman
Puoi includere dettagli sul tuo ambiente come IIS e .NET. – DaveHogan