说白了就是让用户控件增加与普通控件那样的CssClass=“xxx"的属性
这是sapx页面内引用自定义控件PicViewer
<style type="text/css">
.temp
{
position: absolute;
width: 100%;
height: 100%;
background-color: red;
filter: alpha(opacity=50);
-moz-opacity: 0.5;
-khtml-opacity: 0.5;
opacity: 0.5;
}
</style>
<div id="header" style="width:100%;height:300px;">
<uc1:PicViewer ID="PicViewer" runat="server" width="100px" CssClass="temp"/>
</div>
后台添加了cssClass属性,可是没有效果
private string cssClass;
public string CssClass
{
get { return cssClass; }
set
{
cssClass = value;
this.DivAlfBack.Style["class"] = cssClass;
}
}
查看它对应生成的源码:
<div id="header" style="width:100%;height:300px;">
<uc1:PicViewer ID="PicViewer" runat="server" width="100px" CssClass="temp"/>
</div>
<div id="header" style="width:100%;height:300px;">
看看这对应生成的代码是什么……
</div>
变成了控件内部的最外城的DIV 的class
实际上我是要把aspx内设置的样式.temp通过像普通控件属性设置那样传递到内部的第二层DIV的Class中
大哥你看第二层DIV的class没有出现在源代码中
@大芝麻: style="temp" 已经有问题了
你想class="temp" 生在那个DIV
@Yu: 最外层的div 的 id 知道不,如果知道的,就可以通过js设置其第二层的div class="temp"
@Yu: 生在<div id=DivAlfBack>,就是做一个属性,通过在用户控件上设定CssClasss属性把.temp样式真个传递给<div id=DivAlfBack>
即 <uc1:PicViewer ID="PicViewer" runat="server" width="100px" height="300px" BorderStyle="Solid" CssClass="temp"/>
之后再控件内部<div id=DivAlfBack class="temp">
就像设定了height属性一样
把外部的height传递给内部的
private string _height;
public string height
{
get { return _height; }
set {
_height = value;
this.DivAlfBack.Style["height"] = _height;
}
}
@大芝麻: 如果是要增加样式class
那要通过
Attributes 而不是 Style
@Yu: 那具体应该怎么做呢,求指教!膜拜了
@大芝麻:
this.DivAlfBack.Attributes.Add("class", "temp");
@Yu: 谢谢,效果出来了,谢谢大侠!!!。在问下,这个添加样式如果添加了多个样式会是什么情况呢
@大芝麻: 最后一次添加的才有效
@Yu: o 也就是以前的添加的都作废了是吧,不会累计内存吧。
这个答案采纳在哪里才难的 晕死
@大芝麻: ??
直接在内部的div或其他标签上,加上class="",即可~