我在asp.net中设计了一个网页。在那个页面中我放置了html控件,就像<a>
&amp; <div>
。我写了一个java脚本函数,当我点击<div>
标签时隐藏了<a>
。它的工作正常。但是,当我点击asp.net按钮时,页面刷新再次发生。它正在加载我以前的页面设计。我在设计时设置了display:none
的{{1}}。所以它在发生任何其他服务器端事件时再次隐藏我的<div>
。我不想让它发生。
Javascript功能 -
<div>
html代码是 -
<script language="javascript" type="text/javascript">
function toggle5(showHideDiv, switchTag) {
try {
'<%Session["temp"] = "'+more+'"; %>';
var ele = document.getElementById(showHideDiv);
var imageEle = document.getElementById(switchTag);
if (ele.style.display == "block") {
ele.style.display = "none";
imageEle.innerHTML = 'More';
}
else {
ele.style.display = "block";
imageEle.innerHTML = 'Less';
}
}
catch (err) {
alert("Error");
}
}
</script>
Checkbox的C#.net代码 -
<div id="divSearch" style="float:left;height:100%;width:100%;">
<span style="float:right;height:27px;"><a id="displayText" href="#" onclick="javascript:toggle5('toggleText', 'displayText');">More</a></span>
</div>
<div id="toggleText" style="display:none;height:100%;width:100%;">
<div id="divCalls" style="width:24%;float:left;height:30%;">
<span style="float:left;width:100%;color:#3b5998;">
<asp:CheckBox ID="chkNoCall" runat="server" Text="No call made in "
AutoPostBack="True" oncheckedchanged="chkNoCall_CheckedChanged"/>
<asp:TextBox ID="txtNoCall" runat="server" Width="12%" Enabled="False"></asp:TextBox><span> days</span></span>
</div>
</div>
如何解决这个问题?
感谢
答案 0 :(得分:3)
在按钮点击事件中,返回false。这样可以防止回发。
答案 1 :(得分:3)
将此数据放在updatepanel中,如下所示
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<span style="float:left;width:100%;color:#3b5998;">
<asp:CheckBox ID="chkNoCall" runat="server" Text="No call made in "
AutoPostBack="True" oncheckedchanged="chkNoCall_CheckedChanged"/>
<asp:TextBox ID="txtNoCall" runat="server" Width="12%" Enabled="False"></asp:TextBox><span> days</span></span>
</ContentTemplate>
</asp:UpdatePanel>
希望这个帮助
答案 2 :(得分:1)
使用ajax获取服务器端数据,而不是提交页面。
答案 3 :(得分:0)
请尝试以下方法之一:
runat=server
(runat=Server
的组件始终提交表单。autopostback
功能的组件; make autopostback=false