在ASP.NET 4.0中,如何使用代码禁用"a" href标签?

4

有些情况下,我想禁用我的 a 标签,目前我已尝试以下方法:

//codebehind
if(condition)
{
    aTag.Disabled.Equals(true);
}

//.aspx page
<a id="aTag" runat="server"></a>

它不能工作,我不知道问题出在哪里。如果有人知道,请给我一个更好的解决方案。谢谢。


3
只需提取href属性或添加onclick="return false;"。对于链接,disabled属性不起作用。 - canon
1
我认为 Equals(true) 只会获取值而不会设置它。 - Subin Jacob
4个回答

7
您可以使用javascript:void(0);来取消链接。
<a id="aTag" runat="server">You cannot click me!</a>

if(condition)
{
    aTag.HRef = "javascript:void(0);";
}

1
scartag,你的答案也可以工作,但问题是它仍然有页面加载。我发现Win的答案是正确的,但@Win请更新您的答案,因为代码需要在“if条件”中,这样人们在查看相同的问题时就不会感到困惑了...为所有人的努力喝彩! - Learner
1
@Win,我还注意到另一个问题,不太确定。实际上,“Equals(true)”不会设置值,而是返回它是真还是假(一个布尔值)。 - Subin Jacob

4
你可以尝试使用“disabled”HTML属性...不确定它是否适用于链接。
aTag.Attributes.Add("disabled","disabled");

更新:disabled属性不适用于链接

也许您需要删除href中的值。

aTag.Attributes["href"]= "#";

或者将其移除。

aTag.Attributes.Remove("href");

1
这将在HTML中生成disabled="disabled",这是正确的。如果有人想知道,disabled="false"是不正确的。 - rhughes
1
@rhuges,“disabled”属性意味着无论指定哪个(或任何)值,都是“禁用”的(示例)。不幸的是,它对链接没有任何作用。 - canon
1
为什么不将可见属性设置为false? - IrishChieftain

2
尝试将 href 设置为 javascript:void(0)。

1
我会直接使用一个<asp:HyperLink Id="aTag" ClientIDMode="Static" Enabled="true" runat="server" />标签。如果需要在javascript中引用aTag,则将客户端模式设置为静态,否则可以将其删除...
然后在服务器端检查:if condition { aTag.Enabled == false }...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接