如何自定义属性添加到自定义三夏 [英] How to add custom properties to a custom webcontrol

查看:110
本文介绍了如何自定义属性添加到自定义三夏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想自定义类型属性添加到夏精,例如像EditRowStyle在GridView的,但在某种程度上,房地产的属性可以在ASCX / ASPX源视图中声明。很明显,GridView控件还没有得到像EditRowStyle,背景色的属性,但只有EditRowStyle了。事情是这样的:

 公共类MyCustomGrid:GridView控件
{
  [...]
  私人MyCustomSettings customSettings;
  公共MyCustomSettings CustomSettings
        {
            {返回customSettings; }
        }
  [...]
}

公共类MyCustomSettings
{
  私人字符串的CssClass =默认;
  公共字符串的CssClass
  {
    {返回的CssClass; }
    集合{的CssClass =价值; }
  }
}
 

和电网decalartion:

 < C1:MyCustomGrid ID =grdCustom=服务器CustomSettings-的CssClass =customcss/>
 

由于该解决方案是行不通的。

解决方案

 公共类MyCustomGrid:GridView控件
{
  [...]
  私人MyCustomSettings customSettings;
  [PersistenceMode(PersistenceMode.InnerProperty),DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
  公共MyCustomSettings CustomSettings
        {
            {返回customSettings; }
        }
  [...]
}

[类型转换器(typeof运算(MyCustomSettings))]
公共类MyCustomSettings
{
  私人字符串的CssClass =默认;
  公共字符串的CssClass
  {
    {返回的CssClass; }
    集合{的CssClass =价值; }
  }
}
 

I want to add custom typed properties to a webcontrol, like for example EditRowStyle in GridView, but in a way that the property's properties can be declared in Source view in ascx/aspx. It's clear that GridView hasn't got a property like EditRowStyle-BackColor, but only EditRowStyle has. Something like this:

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

And the grid decalartion:

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

Because this solution doesn't work.

解决方案

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

这篇关于如何自定义属性添加到自定义三夏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆