gpt4 book ai didi

c# - DataGridView 上的自定义排序

转载 作者:太空宇宙 更新时间:2023-11-03 11:53:31 24 4
gpt4 key购买 nike

我在 SO 上发现了一些与此类似的问题,但没有一个与这个问题相匹配,所以我们开始吧。

我有一个显示团队成员的 DataGridView。所有团队成员都在其中一列中列出的团队中分配了角色。示例可以是“法定代表”、“客户经理”、“助理客户经理”或“会计师”。

现在有趣的地方来了。我基本上想按字母顺序对该列上的网格进行排序,但有几个异常(exception)。 “客户经理”应始终列在顶部,如果有“助理客户经理”,则其次。

对象和网格在这一点上都是可操作的,并且已经在生产版本中发布了一段时间,所以除了绝对必要之外我不想做更多的工作。

有没有简单的方法来做到这一点?我假设我必须以编程方式进行...

一些伪代码来澄清:

if (memberRole == 'Account Manager') 
{
//put in top row
}
else if (memberRole == 'Assistant Account Manager')
{
//put in second row
}
else
{
//sort remaining rows alphabetically
}

我使用 Visual Studio 2008 在 C# .NET 中工作。

最佳答案

您可以捕获数据 GridView 的 SortCompare 事件:

    private void dataGridView1_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
{
string cell1, cell2;

if (e.Column == "Your_Column")
{
if (e.CellValue1 == null) cell1 = "";
else cell1 = e.CellValue1.ToString();

if (e.CellValue2 == null) cell2 = "";
else cell2 = e.CellValue2.ToString();

if (cell1 == "Account Manager") { e.SortResult = -1; e.Handled = true; }
else
{
if (cell2 == "Account Manager") { e.SortResult = 1; e.Handled = true; }
else
{
if (cell1 == "Assistant Account Manager") { e.SortResult = -1; e.Handled = true; }
else
{
if (cell2 == "Assistant Account Manager") { e.SortResult = 1; e.Handled = true; }
}
}
}
}
}

关于c# - DataGridView 上的自定义排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1379720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com