2011-04-30 66 views
-1

我要爲asp.net頁面上的每個語句呈現我的userControl「GaleriaDetalhe」列表的內容。通過這種方式,返回我此錯誤:爲每個doen't工作裏面的屬性分配對象

無法從它的字符串表示「<%getGaleria(克)%>」用於「數據源」屬性創建類型的對象「SKortal.ImageGalery.ImageGalery」。

如何直接將foreach currentobject賦值給我的usercontrol的datasource屬性?怎麼樣?

<%@ Register src="GaleriaDetalhe.ascx" tagname="GaleriaDetalhe" tagprefix="uc1" %> 

<% For Each g As ImageGalery In DataSource%> 
<uc1:GaleriaDetalhe ID="GDetail" runat="server" DataSource="<% g %>" /> 
<% Next%> 

更具體一點,我假裝知道我如何將對象分配給標記中的屬性?

在此先感謝,

回答

1

這不是創建列表的正確方法。以太使用中繼器,乙醚每次需要時都要加載控制器使用Page.LoadControl("GaleriaDetalhe.ascx");

使用中繼器呈現控件列表。

+0

好吧,我知道,通常我使用中繼器!!,這是一種體驗,我試圖找到更多「viewstateless」索姆新的解決方案。我的預設是要知道如何將對象分配給標記中的屬性。沒有數據綁定! – 2011-04-30 08:00:06

+0

@Flavio,如果獲得viewstateless禁用viewstate,否則你需要每次在你的循環中加載你的控件,然後手動運行並初始化它。 – Aristos 2011-04-30 08:10:18

+0

有沒有辦法將對象分配給用戶控件的屬性? (我對此感興趣,忘了每個!)在標記的方式,不要假裝覆蓋數據綁定! – 2011-04-30 08:20:23

1

您需要在代碼中創建用戶控件,並將它們添加到PlaceHolder。竅門是使用Reference而不是Register(在ASPX頁面中),因爲這允許您創建用戶控件,就像任何其他對象一樣,而不需要Page.LoadControl(控件出現在ASP名稱空間內)。然後,您可以將對象傳遞到其構造函數中,或者在其中創建公共屬性。

我的blog post here顯示了這些步驟。