我正在尝试找出让我的列以默认顺序(从左到右)为所有用户启动的最简单方法。
我尝试在我用来填充DataSource的IList<T>
中设置它们,但这不起作用。
除了按照本页说明手动设置每一栏之外,我还有其他选择 - &gt; Reordering Columns
答案 0 :(得分:1)
请查看以下文档。
您几乎可以定义列的外观。这是代码:
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,它只是按照它们的顺序读取列。
要重新排序,您可以使用已发现的移动方法。