有没有办法将自定义类添加到包含" DnnModule"的外部div中?通过容器将模块放在页面上时创建的类?目前,如果我创建一个要以特定宽度浮动的容器,除非我使用javascript进入HTML并将我的浮动属性添加到DnnModule级别div,否则无法使用该布局。
例如,如果我使用脚手架系统(bootstrap)并且想要添加多个不同大小的容器(span3,span6,span12),那么当我使用这些容器将模块添加到内容窗格时,布局由于DNN在每个模块周围添加了外部div,因此会被忽略。从CSS布局的角度来看,这是非常有限的,它迫使皮肤开发人员创建许多单独设计的皮肤,而不是带有多个容器的几个皮肤,以提供更大的灵活性。
答案 0 :(得分:2)
在DotNetNuke.com论坛上找到答案:
<script runat="server">
Private Sub Page_PreRender(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.PreRender
Try
Dim cParent As HtmlGenericControl = CType(Me.Parent, HtmlGenericControl)
cParent.Attributes("class") = cParent.Attributes("class") + " span6"
Catch ex As Exception
End Try
End Sub
</script>
将此文件添加到容器.ascx文件允许我将自己的特定类插入包装器div。
来源:http://www.dotnetnuke.com/Resources/Forums/forumid/109/threadid/458919/scope/posts.aspx
答案 1 :(得分:2)
C#版本:
<script runat="server">
protected void Page_PreRender(object sender, EventArgs e) {
try {
HtmlGenericControl cParent = (HtmlGenericControl) this.Parent;
cParent.Attributes["class"] += " span6";
} catch (Exception ex) {
// do nothing
}
}
</script>
答案 2 :(得分:1)
我认为DIV总是由DNN自动添加,并且它总是有DNNModule类,我认为没有皮肤或容器的扩展点来修改它。
这意味着我认为你最好的选择是使用jQuery(IIRC,将其融入当前的DNN图像),并在皮肤.ascx文件中初始化它。
像(未经测试)的东西:
$(".DNNModule").addClass("MyMagicClass");
答案 3 :(得分:0)
这是一个古老的问题,但是今天我遇到了类似的问题,最后我尝试使用另一种解决方案在后面的代码中向主体添加一个CSS类:
<script runat="server">
protected void Page_PreRender(object sender, EventArgs e)
{
try
{
HtmlGenericControl body = (HtmlGenericControl)Page.FindControl("body");
body.Attributes.Add("class", " fontSize" + Utils.SiteFontSize);
}
catch (Exception)
{
// do nothing
}
}
</script>