2016-11-20 4 views
0

Ich habe einen Seitennamen Feedback.aspx, enthält es einen PopupModelExtender und darauf gibt es eine btnClose, die serverseitigen Event zum Löschen von Sitzungen und Reload.aspx Seite neu laden.Calling Serverside Click Ereignis nach Javascript Timer

protected void btnClose_Click(object sender, EventArgs e) 
    { 
     Session.Clear(); 
     Session.Timeout = 1; 
     Session.RemoveAll(); 
     Session.Abandon(); 
     Response.Redirect("~/frmPatientFeedback.aspx?cn=1"); 

    } 

ich die Anzeige des Popup-Modell nach einer bestimmten Nachricht und jetzt, wenn es angezeigt wird, Benutzeroption haben btnClose klicken, welche Sitzungen usw. löschen, und alles läuft gut.

Aber ich möchte diese Btnclose-Funktion nach einigen Sekunden aufrufen, falls Benutzer nicht auf die Schaltfläche klicken.

so weit bin ich in der Lage, die modelpopup mit folgenden Methode zu schließen:

<script> 
var timer; 
clearTimeout(timer), timer = setTimeout('HideModalPopup();', 5000); 
function HideModalPopup() 
     { 
      $find("ModalBehaviour").hide(); 
     } 
<script> 

aber wie kann ich btnClose Server Side-Event nach .Hide() aufrufen, oder gibt es eine andere Art und Weise. Noch einmal mein Hauptzweck dafür ist, Sitzung zu löschen, und die Seite vollständig neu zu laden.

AKTUALISIERT:

HTML-Code:

<asp:Button ID="btnShow" runat="server" Text="Show Modal Popup" style="display:none;"/> 
<!-- ModalPopupExtender --> 
<cc1:ModalPopupExtender ID="mp1" runat="server" PopupControlID="Panel1" TargetControlID="btnShow"CancelControlID="btnClose" BackgroundCssClass="modalBackground" BehaviorID ="ModalBehaviour"> 
</cc1:ModalPopupExtender> 
<asp:Panel ID="Panel1" runat="server" CssClass="modalPopup" align="center" style = "display:none"> 
<h2 id="ThankYou" class="thankYou" runat="server">شكرا!</h2> 
<asp:Button ID="btnClose" runat="server" Text="Close" style="display:none;" /> 
<asp:Button ID="modelCloseBtn" CssClass="closebtnModel" runat="server" Text="اغلق" OnClick="btnClose_Click" /> 
</asp:Panel> 
<!-- ModalPopupExtender --> 

Dank

+0

Zeigen Sie Ihren HTML-Code –

+0

Aufruf einer serverseitigen Funktion mit Javascript/jQuery Wenn das ist, was Sie wollen, dann ist Ajax die Antwort. Erstellen Sie die Funktion als Webmethod und rufen Sie sie mit Ajax auf. – Manish

+0

@ OffirPe'er überprüfen Sie bitte den aktualisierten Beitrag –

Antwort

0

Eine Möglichkeit ist es, was @Manish im Kommentar zu Ihrem Beitrag vorgeschlagen: belichten diese Funktionalität als WebMethod, und nennen Sie es mit AJAX oder von Ihrer Serverseite Klicken Sie nach Bedarf auf Ereignishandler.

Eine andere Option, die ein bisschen hackish ist, ist das von ASP.NET erzeugte Javascript für die Schaltfläche zu finden und aus Ihrem Code aufzurufen. Aber das ist wahrscheinlich spröder und kann in Zukunft leicht brechen.

+0

Ich versuchte die Methode @Manish vorgeschlagen, es erklärt [hier] (http://www.codeproject.com/Tips/769238/Call-Server- Side-Code-Verwendung-ASP-NET-AJAX-und-jQuer), aber ich kann nicht alle Dinge aufrufen, die in meinem aktuellen BtnClose_click-Ereignis oben genannten sind. –

+0

@NisarAfridi Sie können die Weiterleitung im AJAX-Erfolgsrückruf ausführen, indem Sie die Datei 'document.location.href' auf die neue URL setzen. –

+0

Ja, das habe ich gemacht, aber ich wollte die selbe Seite neu laden, und wenn ich neu lade, bleiben die Dinge gleich, Sessions werden nicht gelöscht, Cache usw. Also bin ich jetzt auf eine Testseite gegangen und in dieser Clearssessions und wieder zurück zu meinem Haupt Frmpatient Seite. Ich denke nicht, dass es ein richtiger Weg ist, aber es funktioniert für mich. –

Verwandte Themen