我正在使用已经构建的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;
}
}
除非我遗漏了某些内容,否则覆盖样式似乎不会以相同的方式工作。
答案 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;"/>