2009-10-19 8 views
0

Je travaille avec un contrôle de date personnalisé ASP.Net déjà construit, cela semble assez simple, mais je ne sais pas grand-chose sur la construction de contrôles personnalisés.Comment ajouter la propriété style à un contrôle de date personnalisé ASP.Net?

Le contrôle est une zone de texte qui affiche le toolkit ajax CalendarExtender lorsque vous cliquez dessus. Le code HTML ressemble à ceci.

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

Vous remarquerez la largeur codée en dur dans la zone de texte. Comment pourrais-je aller sur l'ajout de la propriété de style à ce que je peux faire quelque chose comme ça ...

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

Je vois dans le code-behind certaines choses sont surchargés, comme permis. Je pensais que je ferais quelque chose de similaire pour le style.

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

Le style de contour ne semble pas fonctionner de la même manière, à moins que je ne manque quelque chose.

Répondre

2

Cela devrait fonctionner (non testé)

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

Dans le contrôle:

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

Dans la déclaration

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