使用瑞典语字母排序datagridview - ÅÄÖ

时间:2010-12-08 12:08:50

标签: c# datagridview

当单元格包含(瑞典)字母Å,Ä和Ö时,我正在尝试正确排序datagridview。

目前它将Å视为A和Ö作为O.

它们应出现在Z。

之后

My CurrentThread.CurrentCulture =(“sv-SE”),我正在使用默认排序。

非常感谢

2 个答案:

答案 0 :(得分:0)

阅读here

将Thread.CurrentThread.CurrentCulture设置为适当的文化。

如果您的表是数据集的一部分,那么您可以将DataSet.Locale设置为a 期待CultureInfo。

答案 1 :(得分:0)

DatagridView提供的默认排序方法可以解决问题。

public void test()
{
    DataGridView dataGridView = new DataGridView();
    dataGridView.Columns.Add("Col1", "Col1");
    dataGridView.Columns.Add("Col2", "Col2");
    dataGridView.Columns.Add("Col3", "Col3");

    dataGridView.Rows.Add(new object[] { 'Á', 2, 3 });
    dataGridView.Rows.Add(new object[] { 'Ä', 2, 3 });
    dataGridView.Rows.Add(new object[] { 'A', 2, 3 });
    dataGridView.Rows.Add(new object[] { 'Ö', 2, 3 });
    dataGridView.Rows.Add(new object[] { 'O', 2, 3 });
    dataGridView.Rows.Add(new object[] { 'Z', 2, 3 });

    dataGridView.Sort(dataGridView.Columns[0], ListSortDirection.Ascending);

    foreach(DataGridViewRow row in dataGridView.Rows)
    {
        foreach(DataGridViewColumn column in dataGridView.Columns)
        {
            Console.Write(row.Cells[column.Name].Value);
            Console.Write(" ");
        }

        Console.WriteLine();
    }
}

输出结果为:


A 3 5 
O 2 1 
Z 2 3 
Á 2 3 
Ä 1 2 
Ö 5 9