Скрытие LinkButton

В VB.NET у меня есть LinkButton, при нажатии на который создается отчет. Мы хотим отключить эту функцию в зависимости от того, кто вошел в систему. У меня есть переменная сеанса, чтобы указать, должно ли это быть видимым или нет, но когда я устанавливаю idLinkButton.visible = False, это не действует. Любые идеи о том, что мне нужно сделать, чтобы иметь возможность включать и выключать это?

'code-behind
' in page_load
Если не Convert.ToBoolean(HttpContext.Current.Session("HideReports")) Then
PDFbutton.Visible = True
Else If Convert.ToBoolean(HttpContext. Current.Session("HideReports")) и HttpContext.Current.Session("LoadFromConsole") Then
PDFbutton.Visible = True
end if


person Michael    schedule 27.04.2012    source источник
comment
Я так понимаю, это ASP.NET, тогда тег добавлен.   -  person Ry-♦    schedule 27.04.2012
comment
Не могли бы вы предоставить код, показывающий LinkButton и код программной части. Похоже, это может быть порядок, в котором вы выполняете действия.   -  person Shai Cohen    schedule 27.04.2012
comment
Сначала свойство .Visible. Далее, где вы устанавливаете это? При загрузке страницы?   -  person Kris Krause    schedule 27.04.2012
comment
‹td align=right›‹asp:LinkButton ID=PDFbutton runat=server Visible=True›Предварительный просмотр и печать‹/asp:LinkButton›‹/td› создает LinkButton. PDFbutton.Visible = False вызывается в PageLoad.   -  person Michael    schedule 27.04.2012
comment
Не могли бы вы отредактировать исходный вопрос, включив в него полный код программной части вашей страницы? То, что вы написали выше, не очень полезно.   -  person Shai Cohen    schedule 28.04.2012


Ответы (1)


Во-первых, вы пытались установить .Visible = false вне логики if/then?

Если это работает, то вы хотите устранить неполадки в логике. Добавьте мою первую строку к тому, что вы показываете выше, затем измените свою первую строку на мою вторую строку.

Dim hideRpt as Boolean = Convert.ToBoolean(HttpContext.Current.Session("HideReports")) 
If Not hideRpt Then

Теперь поставьте точку останова на строке «Если нет…».

Если вы не получаете то, что ожидаете, добавьте еще одну строку, чтобы получить строку для значения сеанса, чтобы убедиться, что оно действительно должно преобразовываться в логическое значение.

Базовое устранение неполадок, чувак, разбей его на более мелкие части. Иногда я запускаю новое приложение для Windows, просто чтобы иметь чистый лист для проработки деталей.

person KennyZ    schedule 27.04.2012
comment
Я пробовал это. Я попытался установить для .Visible значение true вне какой-либо проверки без успеха. Заставил меня усомниться, что это можно сделать таким образом, поэтому я спросил здесь. - person Michael; 28.04.2012
comment
Visible=True не требуется в вашей разметке. Это ничего не изменит, но попытка не помешает. Я не знаю причин, по которым вы не могли бы установить для этого элемента управления значение .Visible = False в событии PageLoad. Но я должен согласиться с другими комментаторами на данный момент... мне нужно увидеть более полную версию кода, чтобы увидеть проблему. - person KennyZ; 01.05.2012
comment
На самом деле, .Visible по умолчанию имеет значение true... LinkButton должен отображаться, если вы явно не установили для него значение .Visible = false. Я провел быстрый тест, и установка .Visible=false в Page_Load скрывает кнопку. Я бы также сказал, что это лучший способ написать свой код... проверьте логику, которая говорит, что вы хотите скрыть кнопку, а не логику, которая говорит, что вы хотите ее показать. - person KennyZ; 16.05.2012