zoukankan      html  css  js  c++  java
  • 一个据说含DataGrid Sort功能的代码。

    http://www.codeproject.com/csharp/datagridsort.asp

    public class MyDataGrid : DataGrid
    {
     
    //sort a column by its index
     public void SortColumn(int columnIndex)
     
    {
      
    if(this.DataSource!=null && 
        ((System.Collections.IList)
    this.DataSource).Count>0)
      
    {
       
    //discover the TYPE of underlying objects
       Type sourceType = ((System.Collections.IList)this.DataSource)[0].GetType();

       
    //get the PropertyDescriptor for a sorted column
       
    //assume TableStyles[0] is used for our datagrid (change it if necessary)
       System.ComponentModel.PropertyDescriptor pd =
        
    this.TableStyles[0].GridColumnStyles[columnIndex].PropertyDescriptor;

       
    //if the above line of code didn't work try to get a propertydescriptor
       
    // via MappingName
       if(pd == null)
       
    {
        System.ComponentModel.PropertyDescriptorCollection pdc 
    =
         System.ComponentModel.TypeDescriptor.GetProperties(sourceType);
        pd 
    =
         pdc.Find( 
    this.TableStyles[0].GridColumnStyles[columnIndex].MappingName, 
                                                                          
    false);
       }


       
    //now invoke ColumnHeaderClicked method using system.reflection tools
       System.Reflection.MethodInfo mi =
        
    typeof(System.Windows.Forms.DataGrid).GetMethod("ColumnHeaderClicked",
         System.Reflection.BindingFlags.Instance 
    |
         System.Reflection.BindingFlags.NonPublic);
       mi.Invoke(
    thisnew object[] { pd });
      }

     }

    }

    以上代码,我一开始用的时候还可以排序,但是后来发现,鼠标点一下后,必须移动到别的地方,才能看到排序效果。不知道是不是新加了MouseDown引起的。
    于是到处查找不同方法的排序代码。戏剧性的是,测试的时候,我把所有的排序功能代码都屏蔽了。这时竟然DataGrid完全可以排序。狂哭啊,狂哭。早知道这样,我何必到处查找排序方法啊。  哎……
  • 相关阅读:
    !!“理都懂”为什么“然并卵”?
    启明创投甘剑平:破解独角兽公司的基因密码
    任正非:华为3年前应该快垮了
    C语言 · 8皇后问题改编
    C语言 · 数的划分
    C语言 · 8皇后问题
    C语言 · 数字黑洞
    C语言 · FBI树
    C语言 · 超级玛丽
    C语言 · 数的划分
  • 原文地址:https://www.cnblogs.com/flashicp/p/771550.html
Copyright © 2011-2022 走看看