嵌套转发器产生“格式错误的服务器标签”?

时间:2011-06-02 22:14:35

标签: c# asp.net data-binding repeater

我正在尝试按照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查询中的匿名对象在代码中对其进行了数据绑定。

4 个答案:

答案 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") %>'