WebUserControls 能否获取有关项目内其他 WebUserControls 的类型信息?
我基本上是想让网络控件相互交谈。
我有一个 WUC 想从另一个 WUC 获取信息。
在 ControlB 的 GetDataFromControlA 方法中
public List<ControlBData> GetDataFromControlA()
{
ControlA c = Page.FindControl( IdOfControlA) as ControlA;
if( c != null)
{
return c.Data;
}
...
}
在代码时 ControlB 对 ControlA 一无所知...因此 ControlB 无法访问其成员,并且上述内容无法编译。
我想我必须使用页面中的方法来让控件相互通信......
I'm basically trying to get webcontrols to talk to one another.
I have one WUC that wants to get information from another.
In ControlB's GetDataFromControlA method
public List<ControlBData> GetDataFromControlA()
{
ControlA c = Page.FindControl( IdOfControlA) as ControlA;
if( c != null)
{
return c.Data;
}
...
}
At code time ControlB knows nothing of ControlA...so ControlB cant access its members, and the above wont compile.
I'm thinking I have to use methods in the page to get the controls talking to one another...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我缺少 <%@ Reference Control="~/ControlA.ascx" %>在 ControlB.ascx 中,
这“修复”了智能和编译错误! 在这里找到
I was missing the <%@ Reference Control="~/ControlA.ascx" %> in ControlB.ascx
This 'fixes' the intellisence and the compile error! Found here
是的,您可以使用方法来实现控件之间的一些通信(因为每个控件最终都属于一个类)。
但您必须将
Control
显式转换为您自己的 WUC 数据类型。例子?
在这种情况下你不应该使用
static
,它会让你很头疼。如果 WUC 在另一个页面中,只需获取对该页面的引用即可。
希望有帮助。
Yes, you can use methods to achieve some communication between controls (since each belongs to a class in the end).
but you have to explicitly cast the
Control
to your own WUC's Datatype.Example?
You shouldn't use
static
in such case, it will get you a lot of headache.If the WUC were in another Page, just get a reference to that page.
Hope that helps.