我有以下(修剪过的)标记:
<asp:Repeater ID="CostCategoryRepeater" runat="server">
<ItemTemplate>
<div class="costCategory">
<asp:Repeater ID="CostRepeater" runat="server" DataSource='<%# Eval("Costs")%>'>
<ItemTemplate>
<tr class="oddCostRows">
<td class="costItemTextRight"><span><%# Eval("Variance", "{0:c0}")%></span></td>
<td class="costItemTextRight"><input id="SupplementAmount" class="costEntryRight" type="text" value='<%# Bind("SupplementAmount")%>' runat="server" /></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</div>
</ItemTemplate>
</asp:Repeater>
外部中继器的数据源在代码旁边设置。我已经剪掉了它们,但是有一些 Eval 语句连接到外部中继器中的属性。无论如何,内部 Repeater 中的一个字段需要是 Bind 而不是 Eval,因为我想获取用户输入的值。SupplementAmount 输入元素在页面加载时正确接收其值,但另一方面另一方面,当我在表单回发时检查成本列表的内容时,用户所做的更改不存在。谢谢。
最佳答案
Bind 方法不能与 Reapter 控件一起使用。 Bind方法仅适用于GridView、DetailsView和FormView控件。
关于asp.net - 如何让 2 路数据绑定(bind)适用于嵌套的 asp.net Repeater 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2430138/