2016-11-20 51 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页面。我不认为它是一个正确的方式,但它为我工作。 –