изменить текст на кнопке ссылки на главной странице? - PullRequest
2 голосов
/ 27 апреля 2011

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

еще раз спасибо

Ответы [ 4 ]

3 голосов
/ 27 апреля 2011

Вы должны найти элемент управления на главной странице, используя метод FindControl, например ...

(ControlType)Master.FindControl("controlID")


((LinkButton)Master.FindControl("LinkButtonID")).Text = "New Text";
1 голос
/ 27 апреля 2011

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

public LinkButton LButton
{
    get { return lButton; }
    set { lButton = value; }
}

В верхней части страницы .aspx добавьте эту директиву с виртуальным путем к главной странице:

<%@ MasterType VirtualPath="~/Master.master" %>

Перестройте решение и в коде вашего .aspx вы можете сделать это:

Master.LButton.Text = "foo bar";

РЕДАКТИРОВАТЬ: если вы хотите, чтобы текст сохранялся на других страницах: Когда определенные критерии выполнены, вы можете вместо этого установить переменную сеанса:

Session.Add("Link Button Text", "foobar");

В загрузке главной страницы:

if(Session["Link Button Text"] != null)
{
   lButton.Text = Session["Link Button Text"].ToString(); 
} 
0 голосов
/ 27 апреля 2011

Чтобы предоставить другую альтернативу данным решениям, вы также можете рассмотреть возможность предоставления мастеру интерфейса:

public interface IMaster
{
   string LinkButtonText { get; set; }
}

Примените этот интерфейс к программному обеспечению мастера.Затем выполните на странице:

((IMaster)Page.Master).LinkButtonText = "XYZ";

Кроме того, если у вас есть собственный базовый класс страницы, вы можете скрыть свойство Master и вместо этого вернуть этот интерфейс, чтобы вы могли напрямую ссылаться на него.

НТН.

0 голосов
/ 27 апреля 2011

Используйте ключевое слово Master.Таким образом, Master.control получит доступ к элементу управления на главной странице.

...