用户控制属性在设计时

时间:2010-03-22 13:31:03

标签: css visual-studio-2008 user-controls design-time

我在Visual Studio 2008中测试一个简单的用户控件:一个名为Wrapper的面板,里面有一些控件。 Visual Studio可以在设计时处理这个吗?

public partial class TestControl : System.Web.UI.UserControl
{
    [Description("Css class of the div around the control.")]
    [CssClassProperty]
    public string CssClass
    {
        get { return Wrapper.CssClass; }
        set { Wrapper.CssClass = value; }
    }
}

设置CssClass属性时,它不会在设计时更新Panel的css。我希望得到太多吗?

2 个答案:

答案 0 :(得分:0)

我认为您必须检查父母并将其投射

if(this.Parent is Panel)
{
   ((Panel)this.Parent).CssClass = value;
}

或类似。

答案 1 :(得分:0)

设计页面在VS IDE中可能是一个令人头痛的问题,因为当通过代码隐藏或整个站点继承的全局页眉加载内容时,IDE不知道ASPX加载的CSS(例如,通过PAGE的子类化。)它使得使用VS IDE很难设计那些子页面/控件/等。将CSS插入子文档或控件不是一个选项,因为编译后的页面通常会包含重复对样式表的引用,甚至可能在声明之前提供第一个引用。

这是让Visual Studio在IDE中使用任意CSS的一种方法,因此您可以使用设计者不知道的css来设计控件。因此,您可以使用它在设计时在编辑器中使CSS可用,但不能在调试或运行时使用。我非常肯定这也适用于你的场景。

插入此内容:

<% 
#If 0 Then
%>    
    <link rel='stylesheet' href='mycss.css' type='text/css' />        
<%
#End If
%>

这将仅在IDE的html设计器中加载样式表。