繁体   English   中英

页面无故刷新

[英]Page refreshes with no reason

我的asp.net页面中有2个LinkBut​​tons。 当我单击第一个时,我希望第二个可见,因此我使用以下代码来实现它:

链接按钮:

<asp:LinkButton runat="server" id="LB1" OnClientClick="updateApplet(); return false;" Text="LB1" />

<asp:LinkButton runat="server" id="LB2" style="display: none;" Text="LB2" />

在updateApplet()函数中完成一些过程之后,我希望在完成所有操作后LB2变得可见。 但是,asp页面无故刷新。

function updateApplet() {

      var msg = document.capture.capture();
      var hiddenControl = '<%= inpHide.ClientID %>';
      document.getElementById(hiddenControl).value = msg;

      document.getElementById('LB2').style.display = 'inherit'; 
      // Without last line everything is perfect but I want LB2 is to be visible and this line refreshes my page :(
      }

有人可以帮我解决我的问题吗?

请检查您的updateApplet()函数是否正常完成(也就是说,没有抛出JavaScript异常)。

从外观上看,您的最后一行导致JavaScript错误,然后return false; 语句不会被调用,因此会触发默认的LinkBut​​ton行为。

编辑:是的,我已经找到了。 您第二个按钮的ID不是LB2 ,您应该已经完成

document.getElementById('<%= LB2.ClientID %>').style.display = 'inherit'; 

我认为原因是

document.getElementById('LB2').style.display

使您的页面崩溃,客户端点击的return false没有机会运行,因此页面会刷新。

尝试

document.getElementById('<%= LB2.ClientID %>').style.display = 'inherit'

Java脚本函数中缺少return false。

Java脚本代码

function updateApplet() {

    var msg = document.capture.capture();
    var hiddenControl = '<%= inpHide.ClientID %>';
    document.getElementById(hiddenControl).value = msg;

    document.getElementById('LB2').style.display = 'block'; 
    return false;
}

HTML标签

<asp:LinkButton runat="server" id="LB1" OnClientClick="return updateApplet();" 
 Text="LB1" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM