2013-12-11 6 views
0

Как определить метку на главной странице с одной контрольной страницы, потеряв ее при переходе на другую страницу управления? Я знаю, что я могу использовать этот код и он работает:Изменить ярлык на главной странице только на одной странице контента

 (Master.FindControl("myControl") as Label).Text = "someNewContent"; 

Но я должен определить это на каждой странице, чтобы сохранить тот же контент в этикетке. Есть ли более простой/более короткий способ определить этот кусок кода только один раз во всей программе? Заранее спасибо.

+0

Что мешает вам установить его в самом хозяине? 'This.myControl.Text = "someNewContent"' –

ответ

1

Я думаю, что я получаю суть того, что вы спрашиваете:

Во-первых, я бы сильно тип главной страницы, на странице содержания чуть ниже директивы @Page, используя директиву @MasterType:

<%@ MasterType TypeName="*fully qualified type of your master page*" %> 

Далее, поместите общественную собственность на вашей главной странице, например, так:

public string MyText 
{ 
    set { this.ViewState["TheText"]; } 
} 

в вашей странице содержимого (во время Page_Init, например), вы можете добавить:

this.Master.MyText = "Whatever you want to say!"; 

Затем загрузите ваши главные страницы управления свойством текста в случае Page_Load:

protected void Page_Load(object sender, EventArgs e) 
{ 
    this.myControl.Text = Convert.ToString(this.ViewState["TheText"]); 
} 

Это не будет сохраняться от содержимого страницы к содержимому страницы, потому что каждая страница контента создает новый экземпляр главной страницы , В этом случае поместите любой текст, который вы хотите сохранить в сеансе, затем прочитайте его в событии страницы Page_Load.

Надеюсь, это ответит на ваш вопрос.

Смежные вопросы