2008-10-22 53 views
19

可以說我有型轎車的一個對象,我想呈現爲HTML:有沒有一種方法可以將數據綁定單個項目,例如:一個Repeater控件?

class Car { 
    public int Wheels { get; set; } 
    public string Model { get; set; } 
} 

我不想使用ASP.NET中繼器或ListView控件綁定,因爲它似乎過於冗長。我只有一個對象。但我仍然希望能夠使用數據綁定語法,因此我不必使用標籤或文字。例如:

<div> 
    Wheels: <%# (int)Eval("Wheels") %><br /> 
    Model: <%# (string)Eval("Model") %> 
</div> 

有沒有人知道一個控制在那裏呢?

而我還沒有準備好切換到ASP.NET MVC。


不幸的是,DetailsView控件不能滿足我的需要,因爲它似乎不支持模板風格的語法,我之後。它也需要綁定到一種DataSource對象。

我更喜歡Maxim和Torkel建議的解決方案。我會盡力爲之。

回答

26

如果網頁是關於一個特定項目(爲例,Car.aspx?CarID = ABC123),我通常有一個名爲「CurrentCar」

public Car CurrentCar { get; set; } 

頁面上的公共屬性,然後我可以有以下內容:

<div> 
    Wheels: <%= CurrentCar.Wheels %><br /> 
    Model: <%= CurrentCar.Model %> 
</div> 

,讓你有型的安全性。只要確保在實際渲染之前分配了有效的對象。

+0

雖然你可能要檢查CurrentCar被空在這裏顯示這個標記之前。 – rjarmstrong 2008-12-02 17:56:40

+0

除非我有理由將其暴露給其他類(當然,除了ASPX頁之類的子類之外),否則我將使屬性'protected'而不是'public'。 – JMD 2014-12-10 23:59:41

5

我建議你讓車在頁面上受保護的財產,這將讓你直接訪問它在aspx頁面:

<div> 
    Wheels: <%= Car.Wheels %> 
    Wheels: <%= Car.Models %> 
</div> 

這種方法對單個項目的數據綁定方案爲實際更好「綁定「是強類型的。

+0

車輪和車輪。 :P你在那裏得到了一個錯字。 – 2008-10-23 10:41:06

0

受保護屬性解決方案的一個缺點是不能使用它來綁定到控件的屬性。

例如,以下是行不通的:

<asp:Label ID="Label1" Text="Probably a truck" Visible='<%# CurrentCart.Wheels > 4 %>' runat="server" /> 
相關問題