无法将 TemplateField 添加到 Datagrid

Can't add TemplateField to Datagrid

我正在尝试将 DropDownList 添加到 DataGrid 中,以便可以轻松更改位置列。我在使用 TemplateField、itemtemplate、label 和 DropDownList 时遇到错误。我收到构建错误:

is not allowed within a 'System.Web.UI.WebControls.DataGridColumnCollection'.

 <asp:DataGrid runat="server" CssClass="tblResults" OnItemDataBound="dgList_ItemCreated" AllowSorting="true" OnSortCommand="dgTrailer_Sort" ID="dgTrailers" DataKeyField="ID" AutoGenerateColumns="false">
                <Columns>
                    <asp:BoundColumn DataField="TrailerOwner" HeaderText="Owner" SortExpression="TrailerOwner"></asp:BoundColumn>
                    <asp:BoundColumn DataField="TrailerMake" HeaderText="Trailer Make" SortExpression="TrailerMake"></asp:BoundColumn>
                    <asp:TemplateField HeaderText="Trailer Location">
                        <itemtemplate>
                            <asp:Label ID="lblLocation" runat="server" Text='<%# Eval("Location") %>' Visible = "false" />
                            <asp:DropDownList ID="ddlLocation" runat="server">
                            </asp:DropDownList>
                     </itemtemplate>
                    </asp:TemplateField>
                    <asp:BoundColumn DataField="Year" HeaderText="Year" SortExpression="Year"></asp:BoundColumn>

                    </Columns>
            </asp:DataGrid>

TemplateField、itemtemplate、label 和 DropDownList 下面都有绿线,这意味着它不是已知元素。

您应该使用 TemplateColumn,当涉及到 DataGrid 时,因为它继承自 System.Web.UI.WebControls.DataGridColumn

TemplateField 继承自 System.Web.UI.WebControls.DataControlField,这对 GridView 很有意义。