WebUser Controls是否可以获取有关项目中其他WebUser控件的类型信息?

时间:2011-02-08 12:29:35

标签: c# asp.net webusercontrol

我基本上试图让webcontrols互相交谈。

我有一个想要从另一个获取信息的WUC。

在ControlB的GetDataFromControlA方法

public List<ControlBData> GetDataFromControlA()
{
    ControlA c = Page.FindControl( IdOfControlA) as ControlA;
    if( c != null)
    {
        return c.Data;
    }
   ...
}

在代码时,ControlB对ControlA一无所知...所以ControlB无法访问其成员,上面的内容不会编译。

我想我必须使用页面中的方法让控件彼此交谈......

2 个答案:

答案 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在另一个页面中,只需获得对该页面的引用。

希望有所帮助。