DataGrid显示两次列

本文关键字:两次 显示 DataGrid | 更新日期: 2023-09-27 18:11:23

我想在我的DataGrid对象中有绑定列。在我添加它们之前,代码工作得很好,但现在我得到了重复的列,特别是我根本不想要的一列。这是ASP:

        <ASP:DataGrid id="UserDataGrid" AutoGenerateColums="False" runat="server">
            <Columns>
                <asp:EditCommandColumn CancelText="Cancel" EditText="Edit" UpdateText="Update" HeaderText="Edit item">
                    <ItemStyle Wrap="False" />
                    <HeaderStyle Wrap="False"/>
                </asp:EditCommandColumn>
                <asp:BoundColumn DataField="Email" HeaderText="Email" ReadOnly="false" SortExpression="Email" />
                <asp:BoundColumn DataField="UserID" HeaderText="User ID" ReadOnly="false" SortExpression="UserID" />
                <asp:BoundColumn DataField="FullName" HeaderText="User Name" ReadOnly="false" SortExpression="FullName" />
            </Columns>
        </ASP:DataGrid>

和后面的代码:

    DataTable dtUsers = new DataTable();
    dtUsers = dataAccessManager.ExecuteSQLForTable("SELECT * FROM tblUser");
    UserDataGrid.DataSource = dtUsers;
    UserDataGrid.DataBind();

我读过的一切都说设置AutoGenerateColumns为false应该解决问题,但它没有做任何事情。

DataGrid显示两次列

查看您提供的代码,AutoGenerateColumns似乎拼写错误。如果你修复了这个问题,它应该可以正常工作。

<asp:DataGrid ID="UserDataGrid" AutoGenerateColumns="false" runat="server">

解决方案:1

通常 autogenerateccolumns 属性为true,如果我们将一个DataGrid绑定到一个表,DataGrid将显示表的所有列。只有当您将 autogeneratecolcolumns 设置为false时,您才能让DataGrid显示您分配的列。

但是根据你的说法,这不起作用。好的

解决方案:2

可以隐藏数据网格列

 DataTable dtUsers = new DataTable();
    dtUsers = dataAccessManager.ExecuteSQLForTable("SELECT * FROM tblUser");
    UserDataGrid.DataSource = dtUsers;
    UserDataGrid.DataBind();
    //Right Below line for hide columns
    UserDataGrid.Columns[0].Visible = false;//Hide First column of the DataGrid 
    UserDataGrid.Columns[1].Visible = false;//Hide Second column of the DataGrid 
    UserDataGrid.Columns[2].Visible = false;//Hide Third column of the DataGrid 
3

解决方案:

可以删除DataGrid列

 DataTable dtUsers = new DataTable();
    dtUsers = dataAccessManager.ExecuteSQLForTable("SELECT * FROM tblUser");
    UserDataGrid.DataSource = dtUsers;
    UserDataGrid.DataBind();
    //Right Below line for Remove columns
    UserDataGrid.Columns[0].Remove(); //Remove First column of the DataGrid 
    UserDataGrid.Columns[1].Remove(); //Remove Second column of the DataGrid 
    UserDataGrid.Columns[2].Remove(); //Remove Third column of the DataGrid 

祝福