默认情况下,在GridView中以特定显示顺序显示列

时间:2013-06-05 16:32:19

标签: c# .net winforms gridview telerik

我正在尝试找出让我的列以默认顺序(从左到右)为所有用户启动的最简单方法。

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

除了按照本页说明手动设置每一栏之外,我还有其他选择 - &gt; Reordering Columns

3 个答案:

答案 0 :(得分:1)

请查看以下文档。

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;

如您所见,我已设置不自动生成列。然后我定义了我想要的列。然后绑定数据源。这将为您提供您想要的订单

请告诉我这是否适合您。

答案 1 :(得分:0)

我正在使用VB.NET,我做了类似的事情......

dgv.Columns(Col4).DisplayIndex = 0
dgv.Columns(Col3).DisplayIndex = 1
dgv.Columns(Col2).DisplayIndex = 2
dgv.Columns(Col1).DisplayIndex = 3

在C#中你可以找到它here

答案 2 :(得分:0)

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

    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,它只是按照它们的顺序读取列。

要重新排序,您可以使用已发现的移动方法。