我有两个可以沟通的网页部分。在至少提供者的Page_Load事件之前,提供者不能向消费者提供值(RID)。因此,在Page_Load之后,消费者无法知道它所需的RID。所以,我迷上了Page_LoadComplete。现在有一个问题。消费者基于此RID创建动态控件。
现在。这些动态创建的控件是在Page_Load之后创建的。因此,它们的视图状态不会恢复(在Page_Load中创建的动态控件确实会恢复其值)。
所以,基本上我需要的是一种方法,可以手动将viewstate恢复到控件,或者从POST变量或C#中的等价物中获取控件的值。
另外,如果我可以在Page_Init中获得控件的值,那也可以。
答案 0 :(得分:2)
从Request.Form键/值对中的帖子返回的所有信息。如果您在那里检查并在键中搜索控件ID,则可以在不查看视图状态的情况下获取值。
您可能需要查看每个密钥并搜索包含控件名称的密钥,因为密钥将是客户端ID而不是您指定的ID。
答案 1 :(得分:0)
如果控件是动态的,则在发生回发之前它们不会处于ViewState状态。因此,ViewState在初始加载时不可用,除非您自己将它们添加到ViewState。
ViewState.Add("myRID", RID)
或者你可以将它保存在SessionState中,而不会重载ViewState,因为无论如何ViewState都会变得过大。我会选择SessionState。