我有这个aspx代码
<form id="form1" runat="server">
<div id="tabs">
<ul>
<li><a href="#tabs-1" >Today</a></li>
<li><a href="#tabs-2" runat="server" onclick="TodayTab_Click">Tomorrow</a></li>
<li><a href="#tabs-3">Any Date</a></li>
虽然我已经使用了onclick
函数,但这个函数没有被触发,
为什么吗?7
这是函数,我在上面设置了一个断点
protected void TodayTab_Click(object sender, EventArgs e) {
int i = 9;
i++;
}
edit2
你们告诉我,我必须把我的a
标签改为asp:Hyperlink
,我做到了,但功能仍然没有被触发。
这是更新后的代码
<form id="form1" runat="server">
<div id="tabs">
<ul>
<li><a href="#tabs-1" >Today</a></li>
<li><asp:Hyperlink href="#tabs-2" runat="server" onclick="TodayTab_Click">Tomorrow</asp:Hyperlink></li>
<li><a href="#tabs-3">Any Date</a></li>
您应该使用<asp:LinkButton>
控件-这是代替<a runat="server">
或<asp:HyperLink>
。
<asp:LinkButton>
将根据您的要求使用OnClick
事件处理程序。
(顺便说一下,如果需要执行任何客户端处理,请使用OnClientClick
属性在呈现的控件上生成onclick
属性)
结果是这样的:
<asp:LinkButton runat="server" onclick="TodayTab_Click" Text="Tomorrow" />
你需要使用onServerClick函数而不是onClick
onServerClick="TodayTab_Click"
我建议使用<asp:linkbutton>
,它有一个服务器端点击事件。但是导航将不得不在javascript中处理,手动导航到href中的标签。(我不推荐这种方法,因为你不需要完整的回发)
请记住,这将做一个完整的回发,如果你不想要一个完整的刷新,将需要一个更新面板。
或者继续使用标准的超链接按钮,但是有一个处理服务器端所需操作的pagememethod,并通过ajax调用它。我推荐这种方法,因为您可以100%地保持在客户端,因为您的服务器端只需要依赖于向服务器发送很少的数据。