将对象分配给foreach内的属性不起作用

时间:2011-04-30 07:48:22

标签: asp.net user-controls foreach datasource

我想在asp.net页面上为每个语句渲染我的userControl“GaleriaDetalhe”列表。通过这种方式它返回我这个错误:

无法从字符串表示形式'<%getGaleria(g)%>'创建'SKortal.ImageGalery.ImageGalery'类型的对象对于'DataSource'属性。

如何直接将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%>

更具体一点,我假装知道如何将对象分配给标记中的属性?

提前致谢,

2 个答案:

答案 0 :(得分:1)

这不是创建列表的正确方法。 Ether使用转发器,以太网使用Page.LoadControl("GaleriaDetalhe.ascx");每次在你的lise上加载控制器

使用转发器呈现控件列表。

答案 1 :(得分:1)

您需要在代码中创建用户控件,并将其添加到PlaceHolder。诀窍是使用Reference而不是Register(在ASPX页面中),因为这允许您像任何其他对象一样创建用户控件而不需要Page.LoadControl(控件出现在ASP命名空间)。然后,您可以将对象传递到构造函数中,也可以在其中创建公共属性。

我的blog post here显示了这些步骤。