http://community.csdn.net/Expert/topic/4336/4336814.xml
昨天的问题才解决,问题又出现了。
#####我自定义的属性类##########
[Serializable]
[TypeConverterAttribute(typeof(ExpandableObjectConverter))]
public class ImageSet
{
#region Private Param
string _imageUrl = "";
int _padding = 1;
int _height=0;
int _width=0;
string _cssName="";
Color _borderColor=new Color();
int _borderWidth=1;
BorderStyle _borderStyle=BorderStyle.Solid;
#endregion public ImageSet()
{ }
[NotifyParentPropertyAttribute(true)]
[Description("图片地址")]
public string ImageUrl
{
get{return _imageUrl;}
set{_imageUrl=value;}
}
[NotifyParentPropertyAttribute(true)]
[Description("内填充距离(px像素)")]
public int Padding
{
get{return _padding;}
set{_padding = value;}
}
########我自定义的控件################## [DefaultProperty("ImageUrl")]
[ToolboxData("<{0}:ImageBox runat=\"server\" />")]
[Designer("Wanna.WebControls.MyDesigner.EmptyDesign, Wanna.WebControls")]
public class ImageBox : System.Web.UI.WebControls.PlaceHolder,INamingContainer
{ public ImageBox():base()
{
TextDirection=TextDirection.Down;
LinkUrl="";
ImageSet=new ImageSet();
TextSet=new TextSet();
} #region Property
[Description("图片设置")]
public ImageSet ImageSet
{
get{return (ImageSet)ViewState["ImageSet"];}
set{ViewState["ImageSet"]=value;}
}如上面的部份代码,在 VS的设计模式上能像FONT属性一样,点十字展开基类的属性。
但这个值不能被保存。
后来我加和了IStateManager,对每个属性做了VIEWCACHE保存,这样可以了,但又出了个问题。
以下我们的都是在设置模式:
像FONT那种属性,如果我们设置了他的SIZE属性=1,在HTML视图里,能看到他多了个Font-Size="1pt";
<asp:listbox id="ListBox1" runat="server" Font-Size="1pt"></asp:listbox>
但是我自己定义的控件,在设置了ImageSet的ImageUrl后,查看HTML视图,里面确没有加上如
<wanna:imagebox id="ImageBox2" runat="server" TextDirection="UP" ImageSet-ImageUrl="http://image.gif"></wanna:imagebox>
这样的东西,而只是这样:
<wanna:imagebox id="ImageBox2" runat="server" TextDirection="UP"></wanna:imagebox>问题就是这样,还请大家给看看

解决方案 »

  1.   

    将需要定义的字段改成ImageSet的属性 类似 private _fontsize public Fontsize{ get set},应该可以了
      

  2.   

    主要说的就是这个问题
    ###########################################
    以下我们的都是在设置模式:
    像FONT那种属性,如果我们设置了他的SIZE属性=1,在HTML视图里,能看到他多了个Font-Size="1pt";
    <asp:listbox id="ListBox1" runat="server" Font-Size="1pt"></asp:listbox>
    但是我自己定义的控件,在设置了ImageSet的ImageUrl后,查看HTML视图,里面确没有加上如
    <wanna:imagebox id="ImageBox2" runat="server" TextDirection="UP" ImageSet-ImageUrl="http://image.gif"></wanna:imagebox>
    这样的东西,而只是这样:
    <wanna:imagebox id="ImageBox2" runat="server" TextDirection="UP"></wanna:imagebox>
    ###########################################
    ImageSet属性在BackCode那可以定义,运行也正常。
    但我要的效果是方便用户使用这个控件,在设计模式下,在左边的ToolBox中托进来,在属性框中设置一下相应的属性就能用了,不到到后台去写代码。
    自动生成 ImageSet-ImageUrl 这样的属性
      

  3.   

    在研究,帮楼主顶上去,楼主知道后能否回一个结果? [email protected] 谢谢