powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как получить доступ к элементам MasterPage?
14 сообщений из 14, страница 1 из 1
Как получить доступ к элементам MasterPage?
    #33926443
hilsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня на MasterPage есть LinkButtonName.
Когда я на странице, подключенной к этой MasterPage пишу
LinkButtonName.Text= "Вася";
Visual Studio 2005 говорит, что не знает никакую LinkButtonName.
Как мне получить доступ к этой кнопке?
...
Рейтинг: 0 / 0
Как получить доступ к элементам MasterPage?
    #33926470
seggg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению, так напрямую нельзя.
Но можно так:
Делаешь в классе мастер-страницы свойство
(в примере: DirectShow)

'код класса Мастер-страницы....
Partial Class _Master_CountryContent
    Inherits System.Web.UI.MasterPage
 
      Public Property DirectShow() As Boolean 'показывать заставку или нет
        Get
            Return Me.pnlDirect.Visible
        End Get
        Set(ByVal Value As Boolean)
            Me.pnlDirect.Visible = Value
        End Set
    End Property
 
.....
'/код класса Мастер-страницы....


а в странице делаешь так:

'код класса страницы....
'отключаем заставку
        CType(Me.Master, _Master_CountryContent).DirectShow = False
'/код класса страницы....
...
Рейтинг: 0 / 0
Как получить доступ к элементам MasterPage?
    #33926488
hilsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Вам seggg за идею.
Процедуру public в программном коде Master'a я написал, но вызвать ее из обычной страницы пока не удается.

Вы написали:
CType(Me.Master, _Master_CountryContent)
но такой процедуры CType в С-Sharp'e я не знаю.
Получить this.Master - это легко. Но дальше что делать не знаю...
...
Рейтинг: 0 / 0
Как получить доступ к элементам MasterPage?
    #33926496
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
CType(Me.Master.FindControl("LinkButton1"), LinkButton).Text = "temp"
на странице, подключенной к этой MasterPage - и усё ;)
...
Рейтинг: 0 / 0
Как получить доступ к элементам MasterPage?
    #33926520
hilsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, уважаемый vladgrig, хотя это и заманчиво - но так не выходит:
Me.Master.FindControl("LinkButton1")
уже дает почему-то null

Может LinkButton1 надо указывать как-то вместе с его ContentPlaceHolder'ом?
...
Рейтинг: 0 / 0
Как получить доступ к элементам MasterPage?
    #33926548
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНет, уважаемый vladgrig, хотя это и заманчиво - но так не выходит:
Me.Master.FindControl("LinkButton1")
уже дает почему-то null

неохота ночью вступать в спор - прекрасно всё выходит
авторМожет LinkButton1 надо указывать как-то вместе с его ContentPlaceHolder'ом?

с каким его ContentPlaceHolder'ом я так, к сожалению и непонял :(
...
Рейтинг: 0 / 0
Как получить доступ к элементам MasterPage?
    #33926855
hilsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ответ vladgrig.

Спасибо за пример,
но именно с настоящим MasterPage так, почему-то, не выходит: дает null.

Кнопка сидит, разумеется, внутри своего ContentPlaceHolder'а - одной из областей, на которые разбита страница MasterPage.
...
Рейтинг: 0 / 0
Как получить доступ к элементам MasterPage?
    #33926996
Артем1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если в страницу, подключенную к MasterPage, добавить такую директиву
Код: plaintext
<%@ MasterType VirtualPath="~/Accounting/Protocol.master" %>

то можно будет писать так:

Код: plaintext
if (!this.Master.IsPrintedVersion) {...

IsPrintedVersion - это мое public-свойство, объявленное в MasterPage (как у seggg )
...
Рейтинг: 0 / 0
Как получить доступ к элементам MasterPage?
    #33927092
hilsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, Артем, за указание на новую возможность.

Но я пока сделал так: вместо Вашего + включение новой директивы +
if (!this.Master.IsPrintedVersion) {...

ПИШУ просто типа

if (!((protocol)(this.Master)).IsPrintedVersion) {...
и тоже всё работает.
Но всё это - вариации на путь указанный segggg.
...
Рейтинг: 0 / 0
Как получить доступ к элементам MasterPage?
    #33927093
hilsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, Артем, за указание на новую возможность.

Но я пока сделал так: вместо Вашего + включение новой директивы +
if (!this.Master.IsPrintedVersion) {...

ПИШУ просто типа

if (!((protocol)(this.Master)).IsPrintedVersion) {...
и тоже всё работает.
Но всё это - вариации на путь указанный segggg.
...
Рейтинг: 0 / 0
Как получить доступ к элементам MasterPage?
    #33927280
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСпасибо за пример,
но именно с настоящим MasterPage так, почему-то, не выходит: дает null.

Кнопка сидит, разумеется, внутри своего ContentPlaceHolder'а - одной из областей, на которые разбита страница MasterPage.

что значит с настоящим MasterPage? и почему должно разуметься что кнопка должна сидеть внутри своего ContentPlaceHolder'а? и для чего MasterPage должна быть разбита на какие то области?
Странно всё это... Если контрол сидит внутри другого контрола - то и искатьего нужно примерно вот так:
Код: plaintext
1.
CType(Me.Master.FindControl("первый контрол").FindControl("вложенный контрол").FindControl("LinkButton1"), LinkButton).Text = TextBox1.Text
и всё будет хорошо...
P.S. всё равно непонимаю, для чего на странице контенты в которые не загружаются страницы и которые используются как контейнеры для контролов...
...
Рейтинг: 0 / 0
Как получить доступ к элементам MasterPage?
    #33927503
hilsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Вам, vladgrig, большое!

Вы мне очень помогли. Я думал, что ВСЯКИЙ элемент мастера обязан находиться в одном из PlaceHolder'ов (откуда я взял такую догму - даже не знаю).
А оказывается элементы страницы могут быть вне их.
Сейчас я переделываю свою главную мастер-страницу и посмотрю что выйдет...
...
Рейтинг: 0 / 0
Как получить доступ к элементам MasterPage?
    #33927643
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
незнаю может последний пост - просто усмешка... ;) и всё же:
1. не путайте ContentPlaceHolder с PlaceHolder - первый существует в мастерпаге для загрузки страниц связанных с ней, второй существует в любой странице для динамичной загрузки контролов (т.к. контрол довольно сложно загрузить в определённое место страницы не зная имени этого места).
2. дизайн мастерпаги (как и любой др. страницы) должен быть основан на таблице (каркасе) - а в этой таблице выбираем места (ячейки таблицы) где мы будем располагать контролы и куда будет вписываться контент дочерней страницы... Никак ContentPlaceHolder в качестве контейнера для контролов в мастерпаге не вписывается в указанную логику...
P.S. может логика моя страдает недаработками, но используется она успешно (главное - ПОВСЕМЕСТНО ;)
...
Рейтинг: 0 / 0
Как получить доступ к элементам MasterPage?
    #33928412
hilsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное Вам спасибо, vladgrig !

Всё получилось. Никакого null - всё нашлось. Привожу фрагмент:

((LinkButton)(this.Master.FindControl("LinkButtonName"))).Text= forum.VisitorLoginam;
и
((LinkButton)(this.Master.FindControl("LinkButtonRegister"))).Enabled= false;

И заодно у меня теперь на страницах, присоединенных к MasterPage стало показываться (в приглушенных тонах) содержимое заготовленных частей мастера!
Большое Вам спасибо за сочувствие!
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как получить доступ к элементам MasterPage?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]