自定义控件的子控件从WebControl中继承,但在每次添加子控件时,却会在CS文件中自动生成保护类型的变量定义。如:protected MyControlItem controlItem1;
要达到的效果类似IE Webcontrol中的TreeView的子控件Nodes的效果,无论添加了多少个node,都只会生成一个TreeView的变量定义,不会把每个node都生成一个定义。
要达到的效果类似IE Webcontrol中的TreeView的子控件Nodes的效果,无论添加了多少个node,都只会生成一个TreeView的变量定义,不会把每个node都生成一个定义。
解决方案 »
- 大家帮我参考下.
- 知道的进来看看
- ·重开贴·关于文件下载的怪问题,IE版本?系统环境?Windows版本?不得知~~
- 如何在LABEL中变换字体的颜色,一部分蓝色,一部分红色?
- button添加confirm消息的问题
- 如何点击Treeview的节点实现另外两个框架页面的跳转
- 我想在Repeater控件中实现下载功能
- 我想买一份源代码,谁有用asp.net做的"吃喝玩乐"的网站源代码?
- 我在安装.net2003后为什么不能建立asp.net项目
- 我用批处理写的windows服务启动不了哪位大神知道怎么解决不
- 建立一个ASP.net Web应用程序 如何部署?
- asp.net中的自定义全局类(c#)
试了一下:[PersistChildren(true)],发觉不行呀,如果此特性为true的话,则会导致我的子控件无法在ASPX页面中自动进行序列化保持,即自动生成子控件标记<waki:item Text="text1"></waki:item>.
现在发现奇怪的现象是:使用系统的集合编辑器往我的子控件集合中添加完子控件后,在CS页中,会生成保护类型变量,即:Protected WakiItem wakiItem1;
如果返回ASPX页面中查看一下HTML代码,再看一下设计样式,再返回CS页面时,发现刚才的保护类型变量申明已被删除.如果不去查看直接执行的话,则变量申明还存在.怎样让它一开始就不自动生成呢?
我看他的控件跟我的效果是一样的。在IDE中添加一个TabPage时,在CS文件中会生成一个变量定义。
如果浏览ASPX的HTML视图的话,再看CS文件时,会发现变量定义已被删除!
{ public TabCollectionEditor(Type type) : base(type){}
protected override object CreateInstance(Type itemType)
{
return Activator.CreateInstance(itemType, BindingFlags.CreateInstance | (BindingFlags.Public | BindingFlags.Instance), null, null, null);
}
}then add the following attribute to your collection class:[Editor(typeof(TabCollectionEditor),typeof(UITypeEditor))]
public class TabPageCollection : CollectionBase
{
//your collection class here
}
design代码如下:
public class BarItemDesign:System.Web.UI.Design.ControlDesigner
{
public BarItemDesign()
{
}
public static Int32 itemNum = 0; public override void OnSetComponentDefaults()
{
CoolBarItem barItem = (CoolBarItem)this.Component;
base.OnSetComponentDefaults ();
barItem.Value = "barItem" + (++itemNum).ToString();
}
}
单独写时是起作用的。