0

我有一组记录,每条记录都有一个 ID 和一个描述。现在在我的表单视图中,我有 8 个文本框,我希望每个文本框都包含每条记录的描述。

所以如果我这样做

Text='<%# Eval("Record[0].Description") %>' />

这给出了一个错误,还有其他方法吗?

我也可以在标记中执行此操作,还是需要在表单视图的数据绑定方法下的代码中执行此操作?

谢谢..

4

2 回答 2

1

FormView 不用于显示数据列表。

如果你有一个数据列表,那么你应该使用GridViewor 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。

于 2013-05-06T17:48:19.947 回答
0

您可以在内部使用中继器:

<asp:repeater ID="rep" runat="server" DataSource='<%# Eval("Record") &>'>
    <ItemTemplate>
        <asp:textbox id="txt" runat="server" Text='<%# Eval("Description") &>' />
    </ItemTemplate>
</asp:repeater>

在中继器中,您将绑定到外部数据源,在中继器内,您的数据上下文是记录

于 2013-05-06T17:49:13.810 回答