2009-10-19 81 views
0

我正在使用已经构建的ASP.Net自定义日期控件,它看起来很简单,但我对构建自定义控件并不了解太多。如何将样式属性添加到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; 
    } 
} 

重写样式似乎并不以同样的方式工作,除非我失去了一些东西。

回答

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;"/>