2016-06-20 61 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

相关问题