是不是继承的问题?帮忙看一下。
请教提示语法错误:“WayControls.WayCheckFormItemCollection”并不包含对“LoadViewState”的定义
错在哪里?请指教。以下为代码
出错的文件内容:
namespace WayControls
。。。
public class WayCheckForm : WebControl
。。。
protected override void LoadViewState(object savedState)
{
if (savedState != null)
{
object[] objArray1 = (object[]) savedState;
base.LoadViewState(objArray1[0]);
this.Items.LoadViewState(objArray1[1]);
}
}
。。。
public WayCheckFormItemCollection Items
{
get
{
return this._Items;
}
set
{
this._Items = value;
}
}
WayCheckFormItemCollection在另一个文件中:
namespace WayControls
。。。
public class WayCheckFormItemCollection : WayCollectionBase
WayCollectionBase在另一个文件中:
namespace WayControls
。。。
public class WayCollectionBase : CollectionBase, IStateManager
。。。
void IStateManager.LoadViewState(object savedState)
{
。。。
}
几个文件都出现这样的错误了。怎么改?
问题点数:20、回复次数:6Top
1 楼qinjiana0789(在csdn提高很快的程序员)回复于 2005-04-03 16:52:12 得分 0
顶,为了解决。Top
2 楼qinjiana0789(在csdn提高很快的程序员)回复于 2005-04-03 16:52:30 得分 0
up,等着。Top
3 楼yananfu2000(安子)回复于 2005-04-03 17:06:47 得分 0
LoadViewState()是继承WebControl之后这个类才具有的方法
在你这里的那个this.Items这是一个集合 而不是具体的那一个继承于WebControl的对象
你可以这样this.Items[0].LoadViewState()应该就没有问题了
这里可能需要强制转换一下 应为LoadViewState方法是Control类的一个方法Top
4 楼xzq686(★_瞬_★)回复于 2005-04-03 17:48:09 得分 0
public class WayCheckFormItemCollection : WayCollectionBase
{
//这个类里面重载一下LoadViewState方法试试
protected override void LoadViewState(object savedState)
{
base.OnPreRender(savedState);
}
}Top
5 楼cuike519(I will be back!)回复于 2005-04-03 21:34:22 得分 15
这是类型的问题,请尝试如下的方法,做类型转换:
public class WayCheckFormItemCollection : WayCollectionBase{
public void LoadViewState(object state){
((IStateManager)this).LoadViewState(state);
}
}Top
6 楼cuike519(I will be back!)回复于 2005-04-04 07:56:18 得分 5
你实现的是一个显式的接口实现,也就是通常我们所说的私有接口实现,这个和公共接口实现是不同的,所以你要通过上面的显式类型转换才可以调用其子类的接口方法,或者改成公共接口实现,即在实现接口IStateManager的时候方法LoadViewState前面不要添加IStateManager限定,直接使用LoadViewState即可!Top




