2016-11-20 43 views
0

我有一個頁面名稱Feedback.aspx,它包含一個PopupModelExtender,並且有一個btnClose調用服務器端事件來清除會話,並重新加載Feedback.aspx頁面。調用Serverside點擊事件後Javascript定時器

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> 

,但我怎麼能叫btnClose服務器端事件後.hide(),或者是有任何其他方式。再次,我的基本目的是清除會話,並完全重新加載頁面。

更新:

HTML代碼:

<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就是答案。創建一個Webmethod函數並使用ajax調用它。 – Manish

+0

@ OffirPe'er請檢查更新後的文章 –

回答

0

一種選擇是什麼@Manish到您的文章評論建議:公開此功能作爲一個WebMethod,並與稱它爲AJAX或從您的服務器端單擊事件處理程序,根據需要。

另一種選擇,這有點hackish,是找到由ASP.NET生成的按鈕,並從您的代碼調用它。但是這可能更脆弱,並且可能在未來輕易破碎。

+0

我嘗試了@Manish的方法建議,其解釋[這裏](http://www.codeproject.com/Tips/769238/Call-Server- Side-Code-using-ASP-NET-AJAX-and-jQuer)但我無法調用上面提到的當前btnClose_click事件中的所有內容。 –

+0

@NisarAfridi你可以在AJAX成功回調中做重定向,將'document.location.href'設置爲新的URL。 –

+0

是的,我做到了,但我想重新加載相同的頁面,當我重新加載它時,事情保持不變,會話不會清除,緩存等。所以現在我移動到測試頁面,並在那些clearsessions,並再次回到我的主要frmpatient頁面。我不認爲它是一個正確的方式,但它爲我工作。 –