在当前页面按钮上应用不同的样式?
Posted
技术标签:
【中文标题】在当前页面按钮上应用不同的样式?【英文标题】:applying different styles on current page button? 【发布时间】:2013-03-15 20:24:25 【问题描述】:我在 asp.net 中做一个网站(制作用户控件)并在 sitefinity 页面中使用它们。 我的导航栏按钮也是放置在模板中的用户控件。
当前页面上的要求是该页面的按钮应该有不同的样式(颜色和bgcolor)。
我不知道如何实现此要求。请指导请求。
编辑: 我没有得到如何在所选页面上应用课程。如何在用户控件中知道哪个页面是当前页面。因为两者都是在 sitefinity 页面中使用的单独用户控件。
谢谢
【问题讨论】:
可以在asp.net中使用主题和皮肤 【参考方案1】:您对使用自定义控件进行导航是否有特定要求?如果您使用 Sitefinity 附带的 Navigation 控件(它位于小部件 Dock 中) - 它会自动将 CSS 类(“rtSelected”)添加到所选页面
【讨论】:
【参考方案2】:使用主题,您可以使用与 .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
【讨论】:
【参考方案3】:如果可以,您可以使用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" />
您还可以为特定控件的代码隐藏编写 css >>
<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;
【讨论】:
可以通过 HttpContext.Current.Request.Url 属性或 this.Page 属性识别当前页面【参考方案4】:您可以根据自己的情况创建不同的主题并使用它。 主题将包含不同的 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
【讨论】:
以上是关于在当前页面按钮上应用不同的样式?的主要内容,如果未能解决你的问题,请参考以下文章
如何以不同的方式设置 UIPageControl 的当前页面指示点的样式?