Asp.net 在gridview中指定列只会添加更多列

Asp.net 在gridview中指定列只会添加更多列,asp.net,gridview,Asp.net,Gridview,我有一个gridview,其中我只想显示查询中的某些列(1用于排序)。下面我试图定义列,但出于某种原因,它呈现了列,然后是查询后缀中的所有列 <asp:GridView ID="taskGridView" runat="server" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2" DataSourceID="SqlD

我有一个gridview,其中我只想显示查询中的某些列(1用于排序)。下面我试图定义列,但出于某种原因,它呈现了列,然后是查询后缀中的所有列

<asp:GridView ID="taskGridView" runat="server" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2" DataSourceID="SqlDataSource1">
             <Columns>
                 <asp:BoundField DataField="Person" HeaderText="Person" SortExpression="Person" />
                 <asp:BoundField DataField="Effort" HeaderText="Effort" SortExpression="Effort" />
                 <asp:BoundField DataField="Task" HeaderText="Task" SortExpression="Task" />
                 <asp:BoundField DataField="Status" HeaderText="Status" SortExpression="Status" />
                 <asp:BoundField DataField="OriginalEstimateHours" HeaderText="OriginalEstimateHours" SortExpression="OriginalEstimateHours" />
                 <asp:BoundField DataField="Total" HeaderText="Total" SortExpression="Total" />
             </Columns>
            <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
            <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
            <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
            <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
            <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
            <SortedAscendingCellStyle BackColor="#FFF1D4" />
            <SortedAscendingHeaderStyle BackColor="#B95C30" />
            <SortedDescendingCellStyle BackColor="#F1E5CE" />
            <SortedDescendingHeaderStyle BackColor="#93451F" />
        </asp:GridView>
        </center>

这就是它看起来的样子:


如何仅显示所需的列?

GridView
控件有一个属性
AutoGenerateColumns
,该属性指定控件是否应基于提供给它的数据源生成列。此属性的默认值为true(),这意味着默认行为是生成所有列,然后附加标记定义的列

要禁用此行为,只需将此属性设置为false

<asp:GridView ID="taskGridView" runat="server" AutoGenerateColumns="false" ...