2016-11-20 12 views
0

ページ名Feedback.aspxがあり、PopupModelExtenderが含まれています。セッションをクリアし、Feedback.aspxページを再ロードするためにbtnCloseがあります。Javascriptタイマーの後にサーバーサイドClickイベントを呼び出す

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

    } 

私は特定のメッセージの後にポップアップモデルを表示していますと、それが表示されたときに、今、ユーザーはセッションなどをクリアなるbtnCloseをクリックするオプションがありますし、すべてがうまく動作します。

しかし、ボタンをクリックしない場合に備えて、このbtnclose関数を数秒後に呼び出す必要があります。

これまでのところ、私は法の下に使用してmodelpopupを閉じることができる午前:

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

が、どのように私は(.hide後btnCloseサーバー側のイベントを呼び出すことができます)、あるいは他の方法があります。もう一度私の基本的な目的はセッションをクリアし、ページを完全にリロードすることです。

更新日:

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 --> 

おかげ

+0

あなたのHTMLコードを表示 –

+0

もしあなたがそれを望むなら、javascript/jQueryを使ってサーバ側の関数を呼び出すと、答えがajaxになります。関数をWebメソッドとして作成し、ajaxを使用して呼び出します。 – Manish

+0

@ OffirPe'erは更新された投稿を確認してください –

答えて

0

一つの選択肢@Manishがあなたの投稿にコメントで提案されているものです:WebMethod属性としてこの機能を公開し、でそれを呼び出すにAJAX、または必要に応じてサーバーサイドClickイベントハンドラから取得します。

もう少し面白くない別のオプションは、ボタンでASP.NETによって生成されたJavascriptを見つけて、コードから呼び出すことです。しかし、これはおそらくより脆く、将来容易に壊れる可能性があります。

+0

私は方法を試してみました@Manishは、その説明[ここ](http://www.codeproject.com/Tips/769238/Call-Server-サイドコード - ASP-NET-AJAX-and-jQuerを使用して)しかし、私は上記の私の現在のbtnClose_clickイベントにあるすべてのものを呼び出すことはできません。 –

+0

@ NisarAfridi AJAX成功のコールバックでリダイレクトを行い、 'document.location.href'を新しいURLに設定することができます。 –

+0

はい、私はそれをしましたが、私は同じページをリロードしたいと思いました。リロードすると同じものが残っています。セッションはクリアされません。キャッシュなどです。テストページに移動して、 frmpatientページ。私はそう正しい方法だとは思っていませんが、私のために働いています。 –

関連する問題