在当前页面按钮上应用不同的样式?

时间:2013-03-26 05:58:26

标签: c# asp.net .net vb.net sitefinity

我正在asp.net中创建一个网站(制作用户控件)并在sitefinity页面中使用它们。 我的导航栏按钮也是放置在模板中的用户控件。

请求在该页面的当前页面按钮上应该有不同的样式(颜色和bgcolor)。

我没有得到如何实现这个要求。请指导请求。

修改 我没有得到如何在所选页面上应用课程。如何知道用户控制哪个页面是当前页面。因为两者都是在sitefinity页面中使用的单独用户控件。

由于

4 个答案:

答案 0 :(得分:2)

您是否对使用自定义控件进行导航有特定要求?如果您使用Sitefinity附带的导航控件(它位于小部件停靠栏中) - 它会自动将CSS类(“rtSelected”)添加到所选页面

答案 1 :(得分:1)

使用主题,您可以使用与.NET Framework捆绑在一起的预定义外观轻松自定义服务器控件,也可以根据网站的外观和风格制作自己的主题。试试这个链接

http://www.codeproject.com/Articles/11886/Themes-and-Skins-in-ASP-NET-2-0

编辑#1

试试此链接

How to make user controls know about css classes in ASP.NET

Apply CSS to single instance of Custom user Control in ASP:NET

答案 2 :(得分:0)

如果可以,您可以使用telerik controls来获得现成的主题。

您可以根据需要为其编写css代码,然后按如下方式提供指向该css的链接>>

 <MyUserControls:MyMenuButton ID="SalesDocumentsMyMenuButton"
                    RootMenuItemText="Sales Documents"
                    RootMenuImage="~/images/common/sales_document.gif"
                    UseSeperator="true"
                    CssClass="css/myButtonMenu.css"
                    runat="server" /> 

您还可以将特定控件的代码隐藏编写为&gt;&gt;

<div class='<%= CssClass %>' >
    <div id="contentPlaceholder" runat="server" class="contentPlaceholderStyle">
    </div>
</div>

[CssClassProperty]
public string CssClass
{
    get { return (string)(ViewState["CssClass"] ?? ""); }
    set { ViewState["CssClass"] = value; }
}

答案 3 :(得分:0)

您可以根据自己的情况创建不同的主题并使用它们 主题将包含不同的CSS文件 创建具有相同名称但具有不同颜色或背景颜色的CSS类 并根据您的情况使用该主题

实施例

protected void BasePage_PreInit(object sender, EventArgs e)
{
   this.Page.Theme = themeName;
 }

这是一个教程
http://www.aspdotnet-suresh.com/2011/10/how-to-change-page-theme-dynamically-in.html
http://www.codeproject.com/Articles/18300/How-to-change-page-theme-in-asp-net-2-0-dynamicall
http://aspalliance.com/959_Themes_and_Master_Pages_in_ASPNET_20__A_Perfect_Combination.4