2009-10-19 2 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;"/> 
Смежные вопросы