& lt;款:ICON>控件没有CssClass支持
本文关键字:控件 CssClass 支持 ICON lt | 更新日期: 2023-09-27 18:03:53
实现一个使用DotNetNuke标准图标的容器。
<%@ Control AutoEventWireup="false" Explicit="True"
Inherits="DotNetNuke.UI.Containers.Container" %>
<%@ Register TagPrefix="dnn" TagName="icon"
Src="~/Admin/Containers/Icon.ascx" %>
<dnn:icon id="dnnICON" runat="server" CssClass="img-circle" />
这将HTML模块呈现到页面上,但不传递css类名,因此图像是未样式化的。
编辑/admin/containers/icon. asx .cs我添加了以下代码:
namespace DotNetNuke.UI.Containers
{
public partial class Icon : SkinObjectBase
{
public string CssClass { get; set; }
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
try
{
if (!String.IsNullOrEmpty(CssClass))
{
imgIcon.CssClass = CssClass;
}
}
catch (Exception exc)
{
Exceptions.ProcessModuleLoadException(this, exc);
}
}
}
这具有传递CSS类到页面中的HTML模块的预期效果,并且似乎没有破坏任何东西,但我担心,一旦升级覆盖管理目录,我所有的更改将被清除。
是否有正确的方法使用皮肤文件夹内的文件来做到这一点?我可以在集装箱里做吗?
我会将dnn:icon控件包装在div中,并以这种方式定位它。
<div class="dnnIcon"><dnn:icon id="dnnICON" runat="server" CssClass="img-circle" /></div>
,然后在你的CSS中输入
.dnnIcon IMG{ STYLE GOES HERE }
您是正确的,除非您重新进行更改,否则在下次DNN升级时将丢失这样的更改。
另一个选择是在GitHub上提交一个Pull请求到dnn平台项目,看看dnn公司是否会在未来的版本中包含您的更改,这样您就可以专门针对图标,而不必通过代码或通过我建议的方法手动执行。