2010-08-31 33 views
3

問候,如何從頁面代碼中的全局變量中分配控件屬性值?

我有一個控制和變量列表,我想在控件屬性在頁面直接被分配到變量值不從後面的代碼,這樣的事情

我的全局變量的

public string Banana = "banana_pie"; 
public string Apple = "apple_pie"; 
在我的自定義控制

代替:

<uc:LoadPie id="pieBanana" type="banana_pie" /> 

對此

<uc:LoadPie id="pieBanana" type="<%=Banana %>" /> 

所以是有辦法,或只是在指定頁面後面的代碼的屬性。

感謝

+0

你的頭銜是明確的,但問題本身不是。你寫的與標題有什麼關係?你的問題到底是什麼?爲什麼提到資源文件?你需要國際化嗎? – Oded 2010-08-31 08:22:30

+0

@Oded:在這個例子中,我把全局變量設置爲const,我提到資源文件是解決這個問題的一種解決方法(錯誤的解決方法,但它解決了這個問題)。問題的部分是模糊的,所以我可以更新它。 THX – Kronass 2010-08-31 08:37:38

+0

@Oded:我更新了我的問題,如果這使得它更清晰 – Kronass 2010-08-31 08:50:16

回答

5

你可以做這樣的使用數據綁定語法。

<uc:LoadPie id="pieBanana" type='<%#Banana%>' runat="server"></uc:LoadPie> 

但隨後在後面的代碼必須調用

pieBanana.DataBind(); 
在頁面加載

爲了要evaulated數據綁定表達式。

但是,如果你要做到這一點,那麼你還不如在指定頁面加載的特性。

+0

你是對的。 這就是要走的路。只是有點打字錯誤: type ='<%# Banana %>' – themarcuz 2010-08-31 13:26:02

+0

感謝您讓我知道我修復它的錯字。 – 2010-08-31 16:01:11

0

我想你應該有一個屬性去(保護應足夠多,但我會在下面的代碼片段說公)在後面的代碼:

Public Property myBanana() As String 
    Get 
     Return Pies.Banana; 
    End Get 
End Property 

然後你就可以用它在你的控制,例如:

<uc:LoadPie id="pieBanana" type="<%= myBanana%>" /> 
+0

在你的代碼也不會發送屬性值的值,它會發出「<%= myBanana%>」字符串值的類型 – Kronass 2010-08-31 08:45:34

+0

是, 我的錯。 Chris Mullins的answare是正確的 – themarcuz 2010-08-31 13:27:57

0

不太你想要什麼,而是怎麼樣:

<% pieBanana["type"] = this.Banana %> 
相關問題