C# - 如何在EditItemTemplate中填充DropDownList

时间:2015-07-13 22:13:44

标签: c# gridview edititemtemplate

这里,我在EditItemTemplate中有一个DropDownList:

<asp:TemplateField HeaderText="RequestedBy" SortExpression="RequestedBy">
                        <EditItemTemplate>
                            <asp:DropDownList ID="ReqUserDDL" runat="server" AppendDataBoundItems ="True" DataSourceID="ReqUsersDataS" DataTextField="Name" DataValueField="Name" SelectedValue='<%# Bind("Name") %>' >
                            </asp:DropDownList>
                            <asp:SqlDataSource ID="ReqUsersDataS" runat="server" ConnectionString="<%$ ConnectionStrings:itassetmgmtConnectionString1 %>" SelectCommand="SELECT Firstname + Lastname AS Name FROM Users"></asp:SqlDataSource>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="Label7" runat="server" Text='<%# Eval("RequestedBy") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>

但是,我一直收到这个错误:

DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'Name'.

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

使用Eval代替BindBind用于读取和/或写入,Eval是只读的。

编辑: Eval / Bind错误不是来自ReqUsersDataS数据源。它正在尝试在GridView的数据源上名为“Name”的列,该列包含您显示的TemplateField。您只需要确保其他数据源具有名为“Name”的列。