这里,我在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'.
有没有办法解决这个问题?
答案 0 :(得分:0)
使用Eval
代替Bind
。 Bind
用于读取和/或写入,Eval
是只读的。
编辑: Eval / Bind错误不是来自ReqUsersDataS数据源。它正在尝试在GridView的数据源上名为“Name”的列,该列包含您显示的TemplateField。您只需要确保其他数据源具有名为“Name”的列。