2009-07-29 13 views
1

Ich möchte einem webcontrol benutzerdefinierte typisierte Eigenschaften hinzufügen, wie z. B. EditRowStyle in GridView, aber so, dass die Eigenschaften der Eigenschaft in der Quellansicht in ascx/aspx deklariert werden können. Es ist klar, dass GridView keine Eigenschaft wie EditRowStyle-BackColor hat, sondern nur EditRowStyle. Etwas wie folgt aus:So fügen Sie einem benutzerdefinierten Websteuerelement benutzerdefinierte Eigenschaften hinzu

public class MyCustomGrid : GridView 
{ 
    [...] 
    private MyCustomSettings customSettings; 
    public MyCustomSettings CustomSettings 
     { 
      get { return customSettings; } 
     } 
    [...] 
} 

public class MyCustomSettings 
{ 
    private string cssClass = "default"; 
    public string CssClass 
    { 
    get { return cssClass; } 
    set { cssClass = value; } 
    } 
} 

Und das Gitter decalartion:

<c1:MyCustomGrid ID="grdCustom" runat="server" CustomSettings-CssClass="customcss" /> 

Da diese Lösung nicht funktioniert.

Antwort

1
public class MyCustomGrid : GridView 
{ 
    [...] 
    private MyCustomSettings customSettings; 
    [PersistenceMode(PersistenceMode.InnerProperty),DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] 
    public MyCustomSettings CustomSettings 
     { 
      get { return customSettings; } 
     } 
    [...] 
} 

[TypeConverter(typeof(MyCustomSettings))] 
public class MyCustomSettings 
{ 
    private string cssClass = "default"; 
    public string CssClass 
    { 
    get { return cssClass; } 
    set { cssClass = value; } 
    } 
} 
0

Warum können Sie nicht einfach diese CssClass-Eigenschaft in MyCustomGrid haben? Dann würde es funktionieren und über das CssClass-Attribut im Markup zuweisbar sein. Ich würde einfach die Eigenschaften zu MyCustomGrid einzeln hinzufügen, nicht in einer anderen Klasse.

+0

Die ganze Theorie davon aufdecken würde viel Zeit kosten, und die Frage war nicht das, aber die Sache, wie Microsoft Jungs das getan haben. Und ich bin auch neugierig. – misnyo

Verwandte Themen