在Web表单中使用C#将参数传递给用户控制



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

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

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

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

最新更新