2016-06-20 86 views
0

我有一個js函數,它從後面的代碼中調用(在按鈕單擊事件上),它打開一個模式窗口。按鈕點擊事件或調用模態窗口的js函數沒有問題。但主要問題來了,如果我刷新頁面。無論何時刷新頁面,都會調用js函數,而無需單擊任何按鈕並加載模態窗口。如何在頁面刷新時避免js函數調用

如何避免頁面刷新時出現此模式窗口加載?

這是我的代碼。

protected void btnTextView_View(object sender, CommandEventArgs e) 
{ 
     //some processing here 
     if (!ClientScript.IsStartupScriptRegistered("JSScript") && !Page.IsPostBack) 
     { 
      ClientScript.RegisterStartupScript(this.GetType(), "JSScript", 
       @"<script type='text/javascript'>showModal()</script>"); 
     } 
} 

編輯:
按您的意見,我的理解是

<head> 
    <script type="text/javascript"> 
     function showModal() { 
      $('#viewOc').modal(); 
      return false; 
     }; 
    </script> 
</head> 

<body> 
    <asp:button class="btn btn-default" id="btnTextView" runat="server" Text="View as Text" commandArgument="1234" OnCommand="btnTextView_View"> </asp:button> 
    <div class="modal fade" id="viewOc" role="dialog"> 
      <div class="modal-dialog"> 
       <div class="modal-content"> 
        //some content here 
       </div> 
      </div> 
    </div> 
</body> 

protected void btnTextView_View(object sender, CommandEventArgs e) 
     { 
      //some processing here 
      if (!ClientScript.IsStartupScriptRegistered("JSScript")) 
      { 
       ClientScript.RegisterStartupScript(this.GetType(), "JSScript", 
       @"<script type='text/javascript'>showModal()</script>"); 
      } 
     } 
+0

檢查此:http://stackoverflow.com/questions/1135404/btnadd-click-fires-when-i-press-f5 @ASN – NEER

回答

0

如果代碼隱藏您共享功能是導致JS運行,您可以按以下方式進行修改如果頁面被刷新,則該按鈕的事件再次被觸發。這是網頁重新提交請求的已知問題,您應該查看此link以解決您的問題。這是漫長的,但完成工作!

+0

我想你剛剛添加此代碼。 '&&!Page.IsPostBack'。當我添加這個,它甚至沒有按鈕點擊調用js函數。 – ASN

+0

你確定這是負責顯示在每個回傳彈出的代碼段..我很困惑這裏的流程 –

+0

嘗試與&& Page.IsPostBack' ....你會需要腳本,如果頁面被張貼回來... @ASN – SamGhatak

0

我不確定OnCommand是否是在此上下文中使用的正確事件。如果您希望事件通過點擊觸發,使用click事件:

<asp:button class="btn btn-default" id="btnTextView" runat="server" Text="View as Text" commandArgument="1234" OnClick="btnTextView_View"> </asp:button> 

這應該阻止你太面臨着頁面刷新的問題。

+0

我剛剛舉了一個例子。實際上,在我的代碼中'commandArgument =「1234」'有一些Eval屬性需要在後面編碼,做一些處理然後在模態窗口上顯示它們。所以我使用了命令參數。 – ASN

+0

然後由@Sujeet發佈的答案應該更合適...只是檢查頁面是否在添加腳本之前回發... – SamGhatak

+0

我剛試過。添加回傳也停止按鈕點擊事件。不明白爲什麼。 – ASN

相關問題