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