2012-04-02 2 views
2

Arbeits ich den folgenden Code haben:OnClientClick und AJAX in RadControls für ASP.NET (telerik) nicht

<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="rlpMain"> 
    <asp:ImageButton ID="ImageButton1" runat="server" 
     OnClientClick="return confirm('Are you sure?');" /> 
</telerik:RadAjaxPanel> 

Dieser Code wird nicht ausgelöst meinen Code hinter Ereignis, das ich in einer VB-Datei geschrieben.

Pls helfen mir ....

Antwort

4

Man kann, wenn akzeptiert einen Bestätigungsdialog für die Benutzer und initiieren eine AJAX-Anforderung zur Verfügung stellen müssen. Bestätigung per Post Rücken sieht oft so aus:

<asp:ImageButton ID="ImageButton1" runat="server" 
    OnClientClick="return confirm('Are you sure?');" /> 

Die OnClientClick sollten ein wenig verändert werden mit AJAX zu arbeiten:

<asp:ImageButton ID="ImageButton2" runat="server" 
    OnClientClick="if (!confirm('Are you sure?')) return false;" /> 

Wenn die Taste mit Mehr der notwendigen AJAX Einstellung RadAjaxManager ajaxified oder wenn die Schaltfläche innerhalb des RadAjaxPanel-Steuerelements platziert wird.

Alternativ kann das clientseitige OnRequestStart-Ereignis zur Implementierung komplexerer Logik verwendet werden. Hier ist ein Beispielskript:

<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> 
    <script type="text/javascript"> 
     function OnRequestStart(ajaxControl, eventArgs) { 
      var eventTarget = eventArgs.get_eventTarget(); 
      if (eventTarget == "<%= ImageButton1.UniqueID %>") { 
       return confirm('Are you sure?'); 
      } 
      else { 
       return false; 
      } 
     } 
    </script> 
</telerik:RadCodeBlock> 
+0

Gr8 danke für Ihre Hilfe vielen Dank. –

+0

Nachdem Sie viel Zeit auf der Suche nach einer Lösung verbracht haben, funktioniert das! gute Antwort :) – Akina91

0

Wenn Sie mit den RadControls bleiben möchten, können Sie einen RadButton als Image verwenden, wie hier definiert:

http://www.telerik.com/help/aspnet-ajax/button-image-buttons.html

Erstellen Sie eine Schaltfläche mit dem OnClientClicking Attribut auf eine Funktion, die (zum kleben innerhalb telerik oder radconfirm) eine confirm ruft unter:

function ConfirmDeletion(sender, args) { 
    var ContinuePostBack = Function.createDelegate(sender, function (clickedOK) { 
     if (clickedOK) { 
      this.click(); 
     } 
    }); 
    var text = "Are you sure you wish to delete this attribute?"; 
    radconfirm(text, ContinuePostBack, 300, 100, null, "Deletion"); 
    args.set_cancel(true); 
} 

Dadurch wird die Postbacks stornieren, aber t Klicken Sie auf die Schaltfläche über den Delegaten ContinuePostBack, wenn der Benutzer auf OK geklickt hat. Ich habe diesen Code sehr oft für Löschungen verwendet.