使用按钮单击显示内容而不回发

时间:2015-04-29 16:08:51

标签: c# html asp.net

<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没有回发。

2 个答案:

答案 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(或其他更高级的框架)

快乐学习!

相关问题