实现使用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.ascx.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模块所需的效果,并且似乎没有破坏任何东西但是我担心一旦升级覆盖管理目录,我的所有更改都将被删除
使用皮肤文件夹中的文件有正确的方法吗?我可以在容器内进行吗?
答案 0 :(得分:1)
我会将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 Corp是否会在未来版本中包含您的更改,以便您可以专门定位图标,而无需通过代码或通过代码手动执行我建议的方法。