2009-07-29 5 views
1

GridViewのEditRowStyleのように、Webフォームにカスタム型付きプロパティを追加したいが、プロパティのプロパティをascx/aspxのソースビューで宣言できるようにしたい。 GridViewはEditRowStyle-BackColorのようなプロパティを持っていませんが、EditRowStyleだけが持っていることは明らかです。カスタムWebcontrolにカスタムプロパティを追加する方法

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; } 
    } 
} 

とグリッドdecalartion:このような何か

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

このソリューションは動作しませんので。

答えて

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

MyCustomGridでそのCssClassプロパティを使用できないのはなぜですか?それはマークアップのCssClass属性を介して割り当てられ、動作します。私はMyCustomGridにプロパティを1つずつ追加し、別のクラスには入れないでください。

+0

これの理論全体を明らかにするには時間がかかりますが、これは問題ではありませんでしたが、マイクロソフトの人たちがそのようにしたことです。そしてまた私は好奇心が強いです。 – misnyo

関連する問題