如何在页面后面的代码中获取用户控件的值

时间:2009-12-13 07:43:27

标签: c# asp.net

如何将usercontrol的值设置为包含usercontrol的页面?

2 个答案:

答案 0 :(得分:3)

如果我理解正确,问题是你试图访问托管用户控件的页面的page_load中的用户控件的StudentId属性?

如果是这种情况,很可能您只是在用户控件在下拉列表中触发SelectedIndexChanged事件之前尝试读取数据。

最简单的解决方案是将读取属性的代码移动到Page_PreRender事件。此事件发生在页面生命周期的后期,并且在所有用户事件都有机会启动之后。

作为替代方案,您可以在用户控件中公开自己的事件(我将其称为“UserControlDropDownChanged”),并让SelectedIndexChanged事件处理程序中的代码触发用户控件的UserControlDropDownChanged事件。在您的页面中,在page_load或page_init期间,您将注册一个事件处理程序以从用户控件中侦听UserControlDropDownChanged ...并且在该事件处理程序中执行下拉列表值更改时所需的任何功能。

如果你不熟悉这种技术的话,我就这样提供了example of how to use events来回答关于SO的另一个问题。

答案 1 :(得分:2)

您需要将此值公开为用户控件的公共属性。