代码之家  ›  专栏  ›  技术社区  ›  misnyo

如何将自定义属性添加到自定义webcontrol

  •  1
  • misnyo  · 技术社区  · 17 年前

    我想向webcontrol添加自定义类型的属性,例如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" />
    

    2 回复  |  直到 17 年前
        1
  •  1
  •   misnyo    17 年前
    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; }
      }
    }
    
        2
  •  0
  •   Pawel Krakowiak    17 年前

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

    推荐文章