我需要在使用者webpart中的Page_Load上创建一些动态控件。在提供者webpart中,我做了一些黑客攻击并获得了它,所以我可以在Page_Init中加载viewstate之前得到一个控件值。
基本上我想要的是webparts能够在Page_Load之前进行通信。
[ConnectionConsumer("FormRID Consumer","FormRIDConsumer")]
public void InitializeProvider(MyControl.IFormRID provider)
{
theProvider = provider;
FormRID = theProvider.FormRID;
}
直到Page_Load之后才会调用该方法。这对我来说是个大问题,因为我的消费者Page_Load依赖于设置和准确的FormRID。我无法将Page_Load代码移动到Page_LoadComplete中,因为我需要使用viewstate创建动态控件(在Page_Load之后未恢复viewstate)
所以我可以使用一些工作,以便我可以在Page_Load之前进行通信。
答案 0 :(得分:1)
您是否尝试过订阅Web部件区域的Init事件并将InitializeProvider()置于其中?我相信它在用户控件和Web表单的OnLoad或OnInit事件之前被触发。
答案 1 :(得分:1)
你应该使用OnPreRender事件而不是Load,因为onLoad发生在WebPart连接执行之前。
以下是使用OnLoad和OnPreRender事件{\ _}}
所期望的一个示例答案 2 :(得分:0)
我最终必须创建自己的webpart通信。
它最终比ASP.Net更清洁,并且可以在Web部件内部的OnInit中进行通信。