как получить доступ к свойству пользовательского элемента управления ascx из masterpage.master.cs - PullRequest
0 голосов
/ 07 марта 2012

У меня есть следующее свойство в моем пользовательском элементе управления:

public string selectedtab 
        {
            get
            {
                if (ViewState["AdminCurrentNavID"] != null)
                {
                    return ViewState["AdminCurrentNavID"].ToString();
                }
                else {
                    isfirstload = true;
                    return null;                
                }
            }

            set { ViewState["AdminCurrentNavID"] = value; }
        }

Я устанавливаю значение этого параметра в моей Page_Load () в элементе управления ascx. Что мне нужно сделать, это то, что после установки значения этого свойства мне нужно получить доступ к нему из masterpage.cs в коде позади. Вы можете увидеть, как в настоящее время я пытаюсь это сделать, в приведенном ниже коде, но проблема в том, что я не могу получить значение, которое я имею в виду, потому что Page_Load () рендеринга главной страницы перед элементом управления ascx, поэтому я получаю ноль Значение, пожалуйста, помогите, спасибо.

masterpage.cs:

usercontrols.mainmenu adminmenu = (usercontrols.mainmenu)LoadControl("~/mymenupath.ascx");
lbmsg.Text = adminmenu.selectedtab;

Ответы [ 2 ]

0 голосов
/ 08 марта 2012

Я нашел решение с помощью Delegate, вы можете увидеть по ссылке ниже.

http://webdeveloperpost.com/Articles/Return-value-from-user-control-in-ASP-NET-and-C-Sharp.aspx

0 голосов
/ 08 марта 2012

Когда вы вызываете LoadControl на своей главной странице, вы фактически создаете новый экземпляр вашего пользовательского элемента управления, а не тот, который у вас есть где-то на вашем сайте.

Когда вы объявляете пользовательский элемент управления на своей странице, вы должны были дать ему идентификатор. Вы можете получить доступ к собственности с чем-то вроде ((usercontrols.mainmenu)MyUserControlId).selectedtab

...