如何将自定义属性添加到自定义Web控件

时间:2009-07-29 11:20:11

标签: c# .net asp.net user-controls

我想将自定义类型属性添加到webcontrol,例如GridView中的EditRowStyle,但是可以在ascx / aspx的Source视图中声明属性的属性。很明显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; }
  }
}

网格decalartion:

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

因为此解决方案不起作用。

2 个答案:

答案 0 :(得分: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; }
  }
}

答案 1 :(得分:0)

为什么你不能在MyCustomGrid中拥有那个CssClass属性?然后它将工作并可通过标记中的CssClass属性进行分配。我只是将属性逐个添加到MyCustomGrid,不要将它们放在另一个类中。