2010-02-01 25 views
3

我有一個cookie在masterpage.master.vb中填充了Browserhawk信息,例如;你如何訪問在masterpage.master中masterpage.master中定義的變量

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

如果樣式表是真我設置useCSS爲1,如果爲假我設置useCSS 0 我需要在masterpage.master如的部分來訪問這些;

​​

我有問題找到正確的語法來得到這個工作。

回答

3

您需要將其公開爲屬性以在標記上使用它。

在後臺代碼:

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 
+0

@Ahmad:+ 1爲建議屬性:) – Mahin 2010-02-01 13:08:37

2

使用CSS變量公共變量並將此代碼寫入您的主文件。

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

注:我是C#的傢伙:)。我不知道你是否必須改變它與VB一起工作。

+0

作爲艾哈邁德建議,而不是使useCSS公共變量,公開爲porperty。 – Mahin 2010-02-01 13:08:10

+0

+1你也有正確的答案:) – 2010-02-01 13:18:36

相關問題