我正在尝试按照here所述的方式执行嵌套转发器,但这是错误的。
我的转发器如下:
<asp:Repeater ID="HouseholdRepeater" runat="server">
<ItemTemplate>
<div><b><%# DataBinder.Eval(Container.DataItem,"Name") %></b></div>
<div>
<asp:Repeater ID="ApplicationRepeater" runat="server" DataSource="<%#((DataRowView)Container.DataItem).Row.GetChildrows("Applications") %>"> <!-- error here -->
<ItemTemplate>
<div>
<a href="<%# DataBinder.Eval(Container.DataItem,"Link") %>"><%# DataBinder.Eval(Container.DataItem,"Description") %></a>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
</ItemTemplate>
</asp:Repeater>
我得到的错误消息是“服务器标签格式不正确”。
它看起来就像我的例子。我没看到它有什么问题。任何想法如何使这项工作?
另外,我使用Linq查询中的匿名对象在代码中对其进行了数据绑定。
答案 0 :(得分:5)
您使用双引号指定DataSource属性,但您的DataSource本身包含双引号。尝试将DataSource括在单引号中:
DataSource='<%#((DataRowView)Container.DataItem).Row.GetChildrows("Applications") %>'
答案 1 :(得分:1)
更改
Row.GetChildrows("Applications")
到
Row.GetChildrows(""Applications"")
同时更改
<a href="<%# DataBinder.Eval(Container.DataItem,"Link")
到
<a href="<%# DataBinder.Eval(Container.DataItem,""Link"")
答案 2 :(得分:0)
DataSource部分看起来不正确...... DataSource应该是这样的
'&lt;%#DataBinder.Eval(Container,“DataItem.ChildTable”)%&gt;'
答案 3 :(得分:0)
更改
DataSource="<%#((DataRowView)Container.DataItem).Row.GetChildrows("Applications") %>"
到
DataSource='<%#((DataRowView)Container.DataItem).Row.GetChildrows("Applications") %>'