【问题标题】:Assign CssClass to LinkButton in MasterPage将 CssClass 分配给 MasterPage 中的 LinkBut​​ton
【发布时间】:2012-08-10 17:37:59
【问题描述】:

我有一些 CSS 来控制我的 asp:LinkButton 超链接,我想了解如何在 MasterPage 加载时为当前页面设置 WebControl's CssClass 属性。

MasterPage 上的这些asp:LinkButton 超链接包含在一个列表中:

<ul id="menu">
  <li class="sprite">
    <asp:LinkButton ID="linkButton1" runat="server" PostBackUrl="~/linkButton1.aspx">
      <span>link 1</span>
    </asp:LinkButton>
  </li>
  <li class="sprite">
    <asp:LinkButton ID="linkButton2" runat="server" PostBackUrl="~/linkButton2.aspx">
      <span>link 2</span>
    </asp:LinkButton>
  </li>
  <li class="sprite">
    <asp:LinkButton ID="linkButton3" runat="server" PostBackUrl="~/linkButton3.aspx">
      <span>link 3</span>
    </asp:LinkButton>
  </li>
</ul>

MasterPage 中,我尝试使用 Page_Load 事件设置 CssClass:

protected void Page_Load(object sender, EventArgs e) {
  if (!IsPostBack) {
    linkButton1.CssClass = "";
    linkButton2.CssClass = "";
    linkButton3.CssClass = "";
    string linkButtonID = Request.RawUrl;
    if (-1 < linkButtonID.IndexOf("linkButton2")) {
      linkButton2.CssClass = "active";
    } else if (-1 < linkButtonID.IndexOf("linkButton3")) {
      linkButton3.CssClass = "active";
    } else {
      linkButton1.CssClass = "active"; // default
    }
  }
}

我的CssClass="active" 似乎从未设置过,查看页面源代码可以快速验证我的所有 LinkBut​​ton 控件都没有设置 CssClass 属性。

由于这很难形象化,我整理了一个 jsFiddle。该网站不支持 ASP,但它可以帮助您想象我想要完成的工作:

http://jsfiddle.net/jp2code/kZQwC/

如何让我的 Active Page 设置 CssClass?

【问题讨论】:

  • 将您的代码移动到 Page_Init 事件中,如果可以解决问题,请告诉我

标签: c# asp.net html css master-pages


【解决方案1】:

您在!IsPostBack 中分配了班级,恐怕您当时的网址没有linkBut​​ton1、linkBut​​ton2 或linkBut​​ton3。

您使用class assignment code out of the if condition 并检查您是否执行了这些条件并获得了课程。

改变

if (!IsPostBack) {
    linkButton1.CssClass = "";
    linkButton2.CssClass = "";
    linkButton3.CssClass = "";
    string linkButtonID = Request.RawUrl;
    if (-1 < linkButtonID.IndexOf("linkButton2")) {
      linkButton2.CssClass = "active";
    } else if (-1 < linkButtonID.IndexOf("linkButton3")) {
      linkButton3.CssClass = "active";
    } else {
      linkButton1.CssClass = "active"; // default
    }
}

linkButton1.CssClass = "";
linkButton2.CssClass = "";
linkButton3.CssClass = "";
string linkButtonID = Request.RawUrl;
if (-1 < linkButtonID.IndexOf("linkButton2")) {
  linkButton2.CssClass = "active";
} else if (-1 < linkButtonID.IndexOf("linkButton3")) {
  linkButton3.CssClass = "active";
} else {
  linkButton1.CssClass = "active"; // default
}

【讨论】:

  • 谢谢!抱歉,我花了这么长时间才接受答案,但我不得不等到我能够重建/发布代码来检查它。
猜你喜欢
  • 2016-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-04
相关资源
最近更新 更多