如何指定列表中的列以显示在DataSource GridView中? C#

时间:2014-04-29 01:11:23

标签: c# gridview datagridview datagrid devexpress

我有一个DataGridView和一个List<>作为DataSorce但我想只显示选定的列。

我有类似的东西......(仅举例)

 class Order{
    public int IdOrder;
    public string Product;
    public double Price;
    public int quantity;
 }

 List<Order> orders = new List<Order>();
 myDataGrid.DataSource = orders;

注意:我还使用了devexpress组件和xPO框架(它是一样的) 感谢。

3 个答案:

答案 0 :(得分:2)

您可以为要隐藏的每个列执行类似的操作:

myDataGrid.Columns[0].Visible = false;

答案 1 :(得分:2)

设置DataSource并填充列后,您可以遍历生成的列并隐藏/删除其中的一些列:

foreach (var column in gridView1.Columns.OfType<DevExpress.XtraGrid.Columns.GridColumn>())
{
    if (column.FieldName == "MemberToBeHidden")
    {
        // Just hide it by default, user can still choose to show it later
        column.Visible = false;

        // Or completely remove from the grid
        gridView1.Columns.Remove(column);
    }
}

或者,如果您根本不想显示该字段,可以使用BrowsableAttribute标记该字段:

class Order
{
    public int IdOrder;
    public string Product;
    public double Price;
    public int quantity;
    [Browsable(false)]
    public string MemberToBeHidden;
}

答案 2 :(得分:1)

您应该禁用datagridview的AutoGeneratedColumns属性,使用与您不想显示的属性相同的列名手动创建列,然后将数据源绑定到该列。