我有一组记录,每条记录都有一个 ID 和一个描述。现在在我的表单视图中,我有 8 个文本框,我希望每个文本框都包含每条记录的描述。
所以如果我这样做
Text='<%# Eval("Record[0].Description") %>' />
这给出了一个错误,还有其他方法吗?
我也可以在标记中执行此操作,还是需要在表单视图的数据绑定方法下的代码中执行此操作?
谢谢..
FormView 不用于显示数据列表。
如果你有一个数据列表,那么你应该使用GridView
or ListView
。
将您的 FormView 与具有单个记录的数据源绑定,然后直接评估数据源的字段。
即这样做:
<asp:FormView ID="FormView1" runat="server" DataSourceID="SqlDataSourceId">
<ItemTemplate>
<asp:TextBox id="txtDescription"
Text='<%# Eval("Description") %>' />
<asp:TextBox id="txtName"
Text='<%# Eval("Name") %>' />
..
</ItemTemplate>
</asp:FormView>
所以基本上,您的 FormView 应该包含不同的 DataField,并且它应该绑定到只有一个 Item 的 DataSource。
您可以在内部使用中继器:
<asp:repeater ID="rep" runat="server" DataSource='<%# Eval("Record") &>'>
<ItemTemplate>
<asp:textbox id="txt" runat="server" Text='<%# Eval("Description") &>' />
</ItemTemplate>
</asp:repeater>
在中继器中,您将绑定到外部数据源,在中继器内,您的数据上下文是记录