在我的ASP.Net网站上我有一个按钮。当我点击按钮然后通过浏览器重新加载页面时,按钮的点击事件会触发。有问题,请帮助我。
答案 0 :(得分:18)
如果我理解正确的话。
您有一个带有按钮的网络表单。
按下导致回发的按钮,按下按钮的事件处理程序即可执行。
然后你点击刷新,页面再次执行按钮事件处理程序。
原因是您刷新了发送到服务器的最后信息。哪个是__doPostback中的按钮点击信息。这就是为什么你再次看到按钮发生的事件。
这是一个article,讨论如何通过回发检测刷新。
答案 1 :(得分:4)
这是因为点击该按钮会向您的页面发送POST请求。 POST数据保存在http标头中,当您刷新时,它会再次发送到服务器。
当您尝试刷新页面时,您的浏览器应该发出警告。
答案 2 :(得分:3)
这是设计的。当您单击服务器端按钮(具有runat="server"
属性)时,单击将导致回发,并且将触发按钮单击事件。
如果您需要某些客户端行为,则需要使用OnClientClick
属性,如this MSDN文章(如何:响应客户端脚本中的按钮Web服务器控件事件)中所述。 / p>
答案 3 :(得分:2)
如果这对某人非常重要,那么他们可以通过Response.Redirect()再次刷新页面。这是我能找到的最简单的解决方案。
答案 4 :(得分:0)
我有同样的问题,它通过将按钮设置为updatePanel的asp:AsyncPostBackTrigger来解决。
答案 5 :(得分:0)
如果您要刷新部分页面,请将控件置于UpdatePanel
内,如果控件导致PostBack
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button CssClass="btn btn-default"
onClick="uploadAttachmentToList" runat="server"
ID="btnUpload" ClientIDMode="Static" Text="Upload"
/>
</ContentTemplate>
</asp:UpdatePanel>
答案 6 :(得分:0)
解决此问题的最简单方法是使用Response.Redirect(Request.RawUrl)将页面重定向到某个网址或刷新当前页面;