我想在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%>
更具体一点,我假装知道如何将对象分配给标记中的属性?
提前致谢,
答案 0 :(得分:1)
这不是创建列表的正确方法。 Ether使用转发器,以太网使用Page.LoadControl("GaleriaDetalhe.ascx");
每次在你的lise上加载控制器
使用转发器呈现控件列表。
答案 1 :(得分:1)
您需要在代码中创建用户控件,并将其添加到PlaceHolder
。诀窍是使用Reference
而不是Register
(在ASPX页面中),因为这允许您像任何其他对象一样创建用户控件而不需要Page.LoadControl
(控件出现在ASP命名空间)。然后,您可以将对象传递到构造函数中,也可以在其中创建公共属性。
我的blog post here显示了这些步骤。