как вы получаете доступ к переменным, определенным в masterpage.master.vb в masterpage.master - PullRequest
3 голосов
/ 01 февраля 2010

У меня есть коллекция файлов cookie, заполненная информацией Browserhawk в masterpage.master.vb, например;

Dim useCSS as boolean = 0
Response.Cookies("Stylesheets").Value = brHawk.Stylesheets
if Response.Cookies("Stylesheets") = True then useCSS = 1

если Stylesheets - True, я устанавливаю useCSS на 1, если false, я устанавливаю useCSS на 0 Мне нужно получить доступ к ним в разделе masterpage.master, например;

if useCSS = true 
Then load stylesheet 
else 
Dont load stylesheet

У меня проблемы с поиском правильного синтаксиса, чтобы это работало.

Ответы [ 2 ]

3 голосов
/ 01 февраля 2010

Вам нужно выставить его как свойство, чтобы использовать его в разметке.

В коде позади:

Private _useCss As Boolean
Public Property UseCss() As Boolean
    Get
        Return _useCss
    End Get
    Set(ByVal value As Boolean)
        _useCss = value
    End Set
End Property

Тогда в разметке:

    <%  If UseCss = True Then %>
    Your stylesheet link tag here
    <% Else %>
    else could be optional if you won't load anything
    <%  End If %>

Альтернативно вы могли бы иметь:

    <%  If UseCss = True Then
            Response.Write("text")
        Else
            Response.Write("something else")
        End If
    %>

Другой вариант - присвоить тегу head идентификатор и программно добавить в него CSS-файл. Для этого вам не нужно свойство, и вы можете использовать переменную напрямую.

В вашей разметке:

<head runat="server" id="head">
   <%-- whatever you typically place here --%>
</head>

В вашем коде, например, при загрузке страницы:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If useCss Then
        Dim stylesheet As New HtmlGenericControl("link")
        stylesheet.Attributes.Add("rel", "stylesheet")
        stylesheet.Attributes.Add("type", "text/css")
        stylesheet.Attributes.Add("href", "../css/myCssFile.css")
        FindControl("head").Controls.Add(stylesheet)
    End If
End Sub
2 голосов
/ 01 февраля 2010

Сделайте переменную useCSS общедоступной переменной и запишите этот код в свой мастер-файл.

<% if ( useCSS == true ) { %>
  <link rel="stylesheet" href="" type="text/css" media="screen" />
<% } %>

Примечание: я парень C # :). Я не знаю, придется ли вам менять его для работы с VB.

...