无法将 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 很有意义。
我正在尝试将 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 很有意义。