在GridView中默认以特定的显示顺序显示列

本文关键字:显示 顺序 GridView 默认 | 更新日期: 2023-09-27 18:17:17

我正在尝试找出最简单的方法,让我的列以默认顺序(从左到右)开始。

我尝试在我用来填充数据源的IList<T>中设置它们,但这不起作用。

除了按照本页的说明手动设置每个列之外,我还有其他选择吗-->重新排序列

在GridView中默认以特定的显示顺序显示列

看一下下面的文档。

http://www.telerik.com/help/winforms/gridview-populating-with-data-tips-when-binding-to-custom-collections.html

你几乎可以定义你想要的列的样子。下面是代码:

radGridView1.MasterTemplate.AutoGenerateColumns = false;
radGridView1.MasterTemplate.Columns.Add(new GridViewTextBoxColumn("Name"));
radGridView1.MasterTemplate.Columns.Add(new GridViewTextBoxColumn("Attributes"));
radGridView1.MasterTemplate.Columns.Add(new GridViewTextBoxColumn("LastAccessTime"));
radGridView1.MasterTemplate.Columns.Add(new GridViewTextBoxColumn("CreationTime"));
DirectoryInfo directory = new DirectoryInfo("C:''");
FileSystemInfo[] filesInDirectory = directory.GetFileSystemInfos();
radGridView1.DataSource = filesInDirectory;

可以看到,我设置了不自动生成列。然后定义我想要的列。然后绑定数据源。这将给你你想要的顺序

请告诉我这是否适合你。

我在VB上行走。. NET和我做了这样的事情。

dgv.Columns(Col4).DisplayIndex = 0
dgv.Columns(Col3).DisplayIndex = 1
dgv.Columns(Col2).DisplayIndex = 2
dgv.Columns(Col1).DisplayIndex = 3
c#中的

你可以在这里找到

网格将根据对象中的字段读取并创建它的列:

    class MyObj
    {
        public string Column2 { get; set; }
        public int Column1 { get; set; }
    }

上面的代码将首先在网格中添加Column2,然后添加Column1,而下面的代码将执行相反的操作:

    class MyObj
    {
           public int Column1 { get; set; }
           public string Column2 { get; set; }
    }

同样适用于DataTables,它只是按照列的顺序读取。

要重新排序它们,您可以使用Move方法,正如您已经发现的。