DataBinding:'System.Data.DataRowView'不包含名为'M'的属性

时间:2012-05-07 06:53:39

标签: asp.net .net data-binding

我在运行时遇到这个异常,说它在数据源中找不到列'M',但我没有在任何地方使用'M'。我正在尝试将数据绑定到gridview内的下拉列表。 我需要在.aspx页面而不是代码后面执行此操作。 这是我正在使用的代码:

<asp:GridView ID="grdDrpDownlistSample" runat="server" AutoGenerateColumns="false" DataSourceID="sqlDS1">
    <Columns>
    <asp:TemplateField HeaderText="User Name">
    <ItemTemplate>
    <asp:Label ID="lblName" runat="server" Text='<%# Eval("Name").ToString()%>'></asp:Label>
    </ItemTemplate>
    </asp:TemplateField>

    <asp:TemplateField HeaderText="Logged In Status">
    <ItemTemplate>
    <asp:CheckBox ID="chkStatus" runat="server" Checked='<%# Eval("LoggedIn") %>'></asp:CheckBox>
    </ItemTemplate>
    </asp:TemplateField>

    <asp:TemplateField HeaderText="Sex">
    <ItemTemplate>
    <asp:DropDownList ID="drpSex" DataSourceID="sqlDS1" runat="server" DataTextField='<%# Eval("Sex") %>'  DataValueField='<%# Eval("id") %>' ></asp:DropDownList>
    </ItemTemplate>
    </asp:TemplateField>
    </Columns>


    </asp:GridView>
    <asp:SqlDataSource ID="sqlDS1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="select * from Users"> </asp:SqlDataSource>

1 个答案:

答案 0 :(得分:1)

现在正在运作。 我通过从dropdownlist中删除Eval来实现这一点,因为它只期望列名而不是Eval表达式。