簡體   English   中英

如何將自定義屬性添加到自定義Web控件

[英]How to add custom properties to a custom webcontrol

我想向Web控件中添加自定義類型的屬性,例如GridView中的EditRowStyle,但是要以某種方式可以在ascx / aspx的“源”視圖中聲明該屬性的屬性。 顯然,GridView沒有像EditRowStyle-BackColor這樣的屬性,而只有EditRowStyle。 像這樣:

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

和網格十進制:

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

因為此解決方案不起作用。

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

為什么您不能僅在MyCustomGrid中擁有該CssClass屬性? 然后它將起作用,並且可以通過標記中的CssClass屬性進行分配。 我只是將這些屬性一個接一個地添加到MyCustomGrid中,而不是將它們放在另一個類中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM