0

从一个 aspx 页面,我试图为集合中的每个项目显示一个用户控件,但是在尝试设置 UserControl 参数时,C# 似乎被忽略了:

<%foreach (Fetus item in this.pregnancy.Fetus) {%>
    //this returns a GUID:
    "<%= item.Id.ToString() %>" 

    //this does not work, returns the characters between "" like < %= item.Id.ToString()%>:
    <uc1:AntepartumCTGChart runat="server" ID="AntepartumCTGChart" FetusId="<%= item.Id.ToString()%>" />
<% } %>

我希望这会起作用,有什么问题?

4

1 回答 1

1

您必须使用数据绑定表达式

<uc1:AntepartumCTGChart runat="server" ID="AntepartumCTGChart" FetusId='<%# item.Id.ToString()%>' />

但是您必须调用DataBind()后面的代码才能使其正常工作。

您还可以使用中继器

<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
        <uc1:AntepartumCTGChart runat="server" ID="AntepartumCTGChart" FetusId='<%# Eval("id").ToString()%>' />
    </ItemTemplate>
</asp:Repeater>

然后在后面的代码中将数据绑定到它

Repeater1.DataSource = pregnancy.Fetus;
Repeater1.DataBind();
于 2018-02-15T16:24:04.637 回答