我的asp.net页面中有2个LinkButtons。当我点击第一个时,我希望第二个可见,所以我使用以下代码来实现它:
了LinkButton:
<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 :(
}
有人可以帮我解决我的问题吗?
答案 0 :(得分:4)
请检查您的updateApplet()
函数是否正常完成(即没有抛出JavaScript异常)。
看起来,你的最后一行导致了JavaScript错误,然后没有调用return false;
语句,因此触发了默认的LinkButton行为。
编辑:是的,我找到了。您的第二个按钮的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" />