<asp:UpdatePanel ID="upTaskInfo" runat="server" ClientIDMode="Static" UpdateMode="Conditional">
<ContentTemplate>
<div class="customAlertDisplay hideTag" id="customAlertDisplay" runat="server">
<section class="notif notif-warn">
<h6 class="notif-title">Warning!</h6>
<p>This task was forced checked out by another user. Your changes will not be saved Site.Master.</p>
<div class="notif-controls">
<a href="javascript:void(0);" class="notif-close" id="cBtn" title="Close This Message">Close</a>
</div>
</section>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="lb1" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel ID="up1" runat="server" ClientIDMode="Static" UpdateMode="Conditional">
<ContentTemplate>
<asp:LinkButton ID="lb1" OnClick="lbSave1_Click" runat="server">Show</asp:LinkButton>
</ContentTemplate>
</asp:UpdatePanel>
CSS:
.hideTag {
display: none;
}
代码隐藏:
public void lbSave1_Click(object sender, EventArgs e)
{
customAlertDisplay.Attributes.Remove("hideTag");
upTaskInfo.Update();
}
我在点击customAlertDisplay
链接按钮时尝试显示lb1
DIV而不进行回发,但它无效。
如何更新代码,因此当单击按钮时,显示的DIV没有回发。
答案 0 :(得分:2)
如果没有回发,你不能使用c#事件,它们总是在服务器上被触发。使用jQuery来添加/删除/切换css类。
答案 1 :(得分:0)
没有回发(甚至是部分回发),你必须依赖javascript。
<div class="customAlertDisplay hideTag" id="customAlertDisplay" style="display: none">
<section class="notif notif-warn">
<h6 class="notif-title">Warning!</h6>
<p>This task was forced checked out by another user. Your changes will not be saved Site.Master.</p>
<div class="notif-controls">
<a href="#" onclick="document.getElementById('customAlertDisplay').style.display = 'none'; return false;" class="notif-close" id="cBtn" title="Close This Message">Close</a>
</div>
</section>
</div>
<a href="#" onclick="document.getElementById('customAlertDisplay').style.display = 'block'; return false;">Show</a>
我冒昧地删除了你不需要的代码(你不需要服务器端的任何东西顺便说一句)并为关闭添加一个点击处理程序。
但正如对另一个答案的评论所指出的那样,你可以更好地挖掘文档来判断这是否合适。客户端验证是客户端(您基本上无法访问服务器上的数据) - 我假设您以后想要添加一些逻辑,您可以在其中确定是否显示以及是否需要访问服务器这个,你不妨做回发。
现在没有人使用普通的JavaScript,它的所有jQuery(或其他更高级的框架)
快乐学习!