我的自定义用户控件中有以下属性:
public string selectedtab
{
get
{
if (ViewState["AdminCurrentNavID"] != null)
{
return ViewState["AdminCurrentNavID"].ToString();
}
else {
isfirstload = true;
return null;
}
}
set { ViewState["AdminCurrentNavID"] = value; }
}
我在ascx控件中的Page_Load()上设置了它的值。我需要做的是,在设置此属性的值后,我需要从后面的代码中的masterpage.cs访问它。你可以在下面的代码中看到我目前正在尝试做什么,但问题是我无法获得值,因为在ascx控件之前母版页的Page_Load()渲染所以我这就是为什么我得到null价值,请帮助,谢谢。
masterpage.cs:
usercontrols.mainmenu adminmenu = (usercontrols.mainmenu)LoadControl("~/mymenupath.ascx");
lbmsg.Text = adminmenu.selectedtab;
答案 0 :(得分:0)
当您在母版页中调用LoadControl时,实际上是在创建用户控件的新实例,而不是访问您网站中某个位置的实例。
当您在页面中声明用户控件时,您应该为其指定一个ID。您可以使用((usercontrols.mainmenu)MyUserControlId).selectedtab
答案 1 :(得分:0)
我使用Delegate找到了解决方案,您可以在下面的链接中看到。
http://webdeveloperpost.com/Articles/Return-value-from-user-control-in-ASP-NET-and-C-Sharp.aspx