2013-04-07 52 views
0

我有一個PHP背景,我正在嘗試學習.NET。我想知道綁定數據。在表達式中使用對象屬性?

如果我有以下類:

public class Test 
{ 
    public string name; 
    public string testnaam; 

} 

Test nat = new Test(); 
nat.name = "blaat"; 
nat.testnaam = "blaat2"; 

爲什麼我不能做這個(或類似的東西):

<asp:Button ID="Button1" runat="server" Text="<% nat.name %>" /> 

難道我做錯了什麼?或者是完全不可能使用這樣的對象屬性?

回答

0

你需要使用一個客戶端按鈕,即

<input type="button" value="<%= buttonText %>" /> 

然後在你的服務器端代碼聲明公用變量

public string buttonText = "This is my button text"; 

這同樣適用於一個對象,只要是公開並正確實例化。確保變量被定義爲公共,然後實例化它在你的Page_Load:

person = new Person { FirstName = "Joe", Surname = "Bloggs" }; 

而且在你的標記:

<input type="button" value="<%= person.FirstName %>" /> 
+0

但是,這隻適用於這是頁面類的屬性?我不能使用單獨的類的屬性嗎?像'Test',但在應用程序命名空間? – MartinH 2013-04-07 18:54:48

+0

我想我明白了,但是我在執行此操作時仍然出現錯誤:在中執行此操作後,」/> nat = new Test();'使用與'public string name =「test」''相同的'Test'類; – MartinH 2013-04-07 19:01:37

+0

你可以發佈你的page_load函數和變量聲明,所以我可以看一看嗎?如果你在page_load中聲明'Test nat = new Test();',那麼問題就是你的變量的範圍,即變量只存在於你的page_load函數的範圍內,而不是頁面本身。您需要聲明如下: \t 'public Test nat; protected void page_load(...){nat = new Test {name =「blaat」,testnaam =「blaat2」}; }' – Crwydryn 2013-04-07 19:25:43

1

的問題有:

<asp:Button ID="Button1" runat="server" Text="<% nat.name %>" /> 

那是asp:Button服務器端控制和<%%>擴大到<script runat="server"></script>。這將是無效的。

+0

奧凱,但如果我使用:「<輸入ID =‘Button1的’值=「<%nat.name%>」/>'? – MartinH 2013-04-07 18:33:51

+0

@MartinH - 當然,假設有一個已經正確初始化的屬性或字段'nat'。 – Oded 2013-04-07 18:34:34

+0

我實例化了Page_Load類中的類Test,但我仍然得到一個異常:只能將賦值,調用,增量,減量,等待和新對象表達式用作語句 – MartinH 2013-04-07 18:37:07

相關問題