0

我基本上是想让 webcontrols 互相交谈。

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

在 ControlB 的 GetDataFromControlA 方法中

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

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

我在想我必须使用页面中的方法来让控件相互交谈......

4

2 回答 2

0

我在 ControlB.ascx 中缺少 <%@ Reference Control="~/ControlA.ascx" %>

这“修复”了智能和编译错误!在这里找到

于 2011-02-24T09:35:02.657 回答
-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 在另一个页面中,只需获取对该页面的引用。

希望有帮助。

于 2011-02-08T12:43:28.133 回答