在 Web 窗体中使用 c# 将参数传递给用户控件

Using c# in Web Forms to passing parameter to user control

在 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()%>" />
<% } %>

我希望这会起作用,怎么了?

你必须使用 data binding expression

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

但是你必须在代码后面调用 DataBind() 才能工作。

您也可以使用 Repeater

<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();