我基本上试图让webcontrols互相交谈。
我有一个想要从另一个获取信息的WUC。
在ControlB的GetDataFromControlA方法
中public List<ControlBData> GetDataFromControlA()
{
ControlA c = Page.FindControl( IdOfControlA) as ControlA;
if( c != null)
{
return c.Data;
}
...
}
在代码时,ControlB对ControlA一无所知...所以ControlB无法访问其成员,上面的内容不会编译。
我想我必须使用页面中的方法让控件彼此交谈......
答案 0 :(得分:0)
我错过了&lt;%@ Reference Control =“〜/ ControlA.ascx”%&gt;在ControlB.ascx
这'修复'intellisence和编译错误! Found here
答案 1 :(得分:-1)
是的,您可以使用方法在控件之间实现某些通信(因为每个控件最终属于一个类)。
但你必须明确地将Control
强制转换为你自己的WUC数据类型。
示例吗
// Convert it from Control to Button
Button nextBtn = (Button)this.FindControl("ButtonIDHere");
// Make sure it is there (not null)
if (nextBtn != null)
{
// Finally, let your logic does the magic!
nextBtn.OnClientClick = "showPopup();";
// Notice that here you can get the specific control members in addition to its base classes' members
}
在这种情况下你不应该使用static
,它会给你带来很多麻烦。
如果WUC在另一个页面中,只需获得对该页面的引用。
希望有所帮助。