2016-06-21 38 views
0

Ich verwende RadAjaxManager, um einige WebForms-Steuerelemente zu ajaxieren. Die Ajax arbeitet in allen Szenarien mit einer Ausnahme fein:RadAjax löst nicht beim ersten Klick nach clientseitigem Ereignishandler aus

Ich habe einen Linkbutton:

<asp:LinkButton ID="lnkSaveButton" 
        Text="Save" 
        OnClick="lnkSaveButton_Click" 
        OnClientClick="if (! validateValidation()) return false;" 
        runat="server" /> 

Die validateValidation Funktion einig Client-Seite Seite Validierung auf meinem Formular-Steuerelemente ausgelöst, die false gibt die Form zu blockieren von der Abgabe, wenn Die Seite ist ungültig.

Wenn die Seite ungültig ist, können alle Steuerelemente, auf die RadAjaxManager abzielt, ihre AJAX-Anforderung nicht beim ersten Klick (nur) auslösen, nachdem die Validierung abgeschlossen wurde.

Jeder nachfolgende Klick auf das Ajaxified-Steuerelement löst die Anfrage korrekt aus. Es ist auch erwähnenswert, dass alle der Ajaxified-Steuerelemente ordnungsgemäß funktionieren, nachdem eine Ajaxified-Steuerelement wurde einmal geklickt. Das Klicken auf ein nicht-ajaxifiziertes Steuerelement (das nicht von RadAjaxManager gesteuert wird) hat keine Auswirkungen.

Es ist auch erwähnenswert, dass, wenn ich RadAjaxManager mit einfachen RadAjaxPanel s ersetze ich genau das gleiche Ergebnis wie oben beschrieben bekomme.

Was ist los und wie repariere ich es?

Antwort

0
  • sicherzustellen, dass Sie nicht das Hinzufügen AjaxSettings werden, dass, wenn die ajaxRequsetWithTarget versuchen

  • Validierung umfassen in der clientseitigen Handler RadAjaxPanel steuert

  • sicherstellen, dass keine Skriptfehler geworfen werden, vor allem durch die anruf Validierung ist erfolgreich, etwas wie:

    <telerik:RadCodeBlock runat="server" ID="RadCodeBlock1"> 
         <script> 
          function validateValidation() { 
           var validatinPassed = true; 
           $find("<%=RadAjaxManager.GetCurrent(Page).ClientID%>").ajaxRequestWithTarget('<%= lnkSaveButton.UniqueID %>', ''); 
           return false; 
          } 
         </script> 
        </telerik:RadCodeBlock> 
        <asp:LinkButton ID="lnkSaveButton" 
            Text="Save" 
            OnClick="lnkSaveButton_Click" 
            OnClientClick="if (! validateValidation()) 
             return false;" 
            runat="server" /> 
        <asp:Label ID="Label1" Text="text" runat="server" /> 
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> 
         <AjaxSettings> 
          <telerik:AjaxSetting AjaxControlID="lnkSaveButton"> 
           <UpdatedControls> 
            <telerik:AjaxUpdatedControl ControlID="lnkSaveButton" /> 
            <telerik:AjaxUpdatedControl ControlID="Label1" /> 
           </UpdatedControls> 
          </telerik:AjaxSetting> 
         </AjaxSettings> 
        </telerik:RadAjaxManager> 
    

    und ein Beispiel Handler für t esting

    protected void lnkSaveButton_Click(object sender, EventArgs e) 
    { 
        Label1.Text = DateTime.Now.ToString(); 
    } 
    
+0

Danke für die Tipps. Ich denke, ich habe das meiste davon abgedeckt, aber ich werde bald die 'ajaxRequestWithTarget'-Funktion ausprobieren und Sie wissen lassen, wie es geht. – Adam

Verwandte Themen