如何从masterpage.master.cs访问ascx自定义控件属性

时间:2012-03-07 18:20:47

标签: asp.net visual-studio custom-controls

我的自定义用户控件中有以下属性:

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;

2 个答案:

答案 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