OnClientClick事件未激发
本文关键字:事件 OnClientClick | 更新日期: 2023-09-27 18:24:55
在我正在构建的网页中,我有一个默认情况下需要隐藏的div,以便在用户单击链接按钮时显示。这是链接按钮和以下div的代码:
<asp:LinkButton runat="server" Text="Words & stuff go here"
OnClientClick="button_Click"></asp:LinkButton>
<div id="Calculator" runat="server" visible="false">
//CODE GOES IN HERE
</div>
这是cs文件中链接按钮的代码:
void button_Click(object sender, EventArgs e)
{
if (Calculator.Visible)
Calculator.Visible = false;
else if (!Calculator.Visible)
Calculator.Visible = true;
}
我在后面的代码中有一个断点,当我调试时,断点永远不会到达,我不知道为什么。
客户端点击是针对客户端事件。您必须使用onClick="button_Click"才能使其工作。
ASP.NET控件的OnClientClick属性引用客户端函数,这意味着它将尝试调用JavaScript函数。
您有两个选项来修复代码。
选项1:
如果你想让按钮进行Postback并在.cs
文件中调用button_Click
函数,你可以把按钮代码改为:
<asp:LinkButton runat="server" Text="Words & stuff go here" OnClick="button_Click"></asp:LinkButton>
选项2:
如果您希望使用OnClientClick,您可以执行类似于以下操作(在.aspx
文件中):
<script type="text/javascript">
function button_Click() {
var calculator_id = '<%= Calculator.ClientID %>';
var calculator = document.getElementById(calculator_id);
if (calculator.style.display == 'none') {
calculator.style.display = 'block';
} else {
calculator.style.display = 'none';
}
}
</script>
OnClientClick
希望button_Click事件是在页面上的javascript中定义的,而不是在代码后面的C#中定义的。
看看这个。