【问题标题】:Disable "a" href tag using code behind(c#) in asp.net 4.0在 asp.net 4.0 中使用后面的代码(c#)禁用“a”href 标记
【发布时间】:2013-11-07 00:25:16
【问题描述】:

对于某些情况,我想禁用我的标签,到目前为止我已经尝试过

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

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

它不起作用,我不知道这是怎么回事,如果有人知道请给我更好的解决方案,谢谢。

【问题讨论】:

  • 只需拉取href 属性或添加onclick="return false;"disabled 属性对链接没有任何作用。
  • 我认为Equals(true) 只会获取值而不会设置它

标签: c# html asp.net


【解决方案1】:

您可以使用javascript:void(0); 来终止链接。

<a id="aTag" runat="server">You cannot click me!</a>

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

【讨论】:

  • scartag,你的答案也有效,但问题是它仍然有页面加载。我在 Win 的答案中发现它是正确的,但@Win 请更新你的答案作为“如果条件”,这样人们在看同一个问题时就不会感到困惑......为他们的努力加油!
  • @Win 我还注意到另一个问题,不确定。实际上,Equals(true) 不会设置值,而是会返回其真假(布尔值)。
【解决方案2】:

您可以尝试使用禁用的 html 属性。但不确定它是否适用于链接。

aTag.Attributes.Add("disabled","disabled");

更新:禁用不适用于链接

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

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

或者删除它。

aTag.Attributes.Remove("href");

【讨论】:

  • 这将在 HTML 中生成disabled="disabled",这是正确的。如果有人想知道,disabled="false" 不是。
  • @rhuges disabled 属性表示禁用,无论指定哪个(或任何)值(example)。不幸的是,它对链接没有任何作用。
  • 为什么不将 visible 属性设置为 false?
【解决方案3】:

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

【讨论】:

    【解决方案4】:

    我只会使用&lt;asp:HyperLink Id="aTag" ClientIDMode="Static" Enabled="true" runat="server" /&gt;

    如果您需要在javascript中引用aTag,请将客户端模式设置为静态,否则您可以将其删除...

    然后在服务器端查看:if condition { aTag.Enabled == false } ...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-03
      • 2016-06-21
      • 1970-01-01
      • 2014-10-27
      相关资源
      最近更新 更多