我想将自定义类型属性添加到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" />
因为此解决方案不起作用。
答案 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,不要将它们放在另一个类中。