如何将样式属性添加到ASP.Net自定义日期控件?

时间:2009-10-19 16:57:35

标签: asp.net custom-controls

我正在使用已经构建的ASP.Net自定义日期控件,看起来非常简单,但我对构建自定义控件知之甚少。

该控件是一个文本框,单击时会弹出ajax工具包CalendarExtender。 html看起来像这样。

<div style="display:inline; white-space:nowrap"> 
    <asp:TextBox runat="server" ID="txtCalender" CssClass="netcontrolstyle" Width="190px" onkeydown="if(event.which || event.keyCode){ if ((event.which == 13) || (event.keyCode == 13)) return false;}" />
</div>
<ajaxToolkit:CalendarExtender 
    runat="server"  
    ID="CalendarExtender1" 
    Format="MM/dd/yyyy" 
    TargetControlID="txtCalender" 
    PopupButtonID="CalenderImage" /> 

您会注意到文本框中的硬编码宽度。我将如何添加样式属性,以便我可以做这样的事情......

<uc1:datecontrol runat="server" ID="StartDate" style="width: 75px;"/>

我在代码隐藏中看到一些东西被覆盖,就像启用一样。我以为我会为风格做类似的事情。

public override bool Enabled
{
    get 
    { 
        return txtCalender.Enabled; 
    }
    set
    {
        txtCalender.Enabled = value;
    }
}

除非我遗漏了某些内容,否则覆盖样式似乎不会以相同的方式工作。

1 个答案:

答案 0 :(得分:2)

这应该有效(未经测试)

private string textboxStyle;
public string TextboxStyle
{
    get { return textboxStyle; }
    set { textboxStyle = value;}
}

在控件中:

 <asp:TextBox runat="server" ID="txtCalender" CssClass="netcontrolstyle" Style="<%# TextboxStyle %>"  />

在声明中

<uc1:datecontrol runat="server" ID="StartDate" TextboxStyle ="width: 75px;"/>