在GridView中默认以特定的显示顺序显示列
本文关键字:显示 顺序 GridView 默认 | 更新日期: 2023-09-27 18:17:17
我正在尝试找出最简单的方法,让我的列以默认顺序(从左到右)开始。
我尝试在我用来填充数据源的IList<T>
中设置它们,但这不起作用。
除了按照本页的说明手动设置每个列之外,我还有其他选择吗-->重新排序列
看一下下面的文档。
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方法,正如您已经发现的。