页面没有任何理由刷新

时间:2012-02-27 15:15:42

标签: javascript asp.net

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

了LinkBut​​ton:

<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 :(
      }

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

3 个答案:

答案 0 :(得分:4)

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

看起来,你的最后一行导致了JavaScript错误,然后没有调用return false;语句,因此触发了默认的LinkBut​​ton行为。

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

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

答案 1 :(得分:1)

我认为原因是

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

崩溃了您的网页,客户端点击的返回false无法运行,因此页面会刷新。

尝试

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

答案 2 :(得分:1)

  

Java Script函数中缺少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" />