gridview中数据排列已经实现的情况下如何实现让鼠标点击某一字段让他升序右侧就显示一个向上的尖头,在点下就切换成降序是他显示一个向下的尖头??如产品名↑,在点下为产品名↓

解决方案 »

  1.   

    gridview的列属性里有sortMode,设其属性为Automatic就行了
      

  2.   

    //点击列头 
     private void dataGridViewList_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) {            if (e.ColumnIndex == 1) {                if (animalSortOrder == SortOrder.Ascending) {
                        animalSortOrder = SortOrder.Descending;
                    }
                    else {
                        animalSortOrder = SortOrder.Ascending;
                    }
                    if (dataGridViewList.DataSource != null) {
                        ( dataGridViewList.DataSource as List<LocalLog> ).Sort(new Comparison<LocalLog>(LocalLogComparsion));
                    }
                    dataGridViewList.Columns[1].HeaderCell.SortGlyphDirection = animalSortOrder;
                    dataGridViewList.Refresh();
      
                }
            }//排序算法
            static int LocalLogComparsion(LocalLog log1, LocalLog log2) {
                int sortOrderModifier = 1;
                if (animalSortOrder == SortOrder.Ascending) {
                    sortOrderModifier = 1;
                }
                else if (animalSortOrder == SortOrder.Descending) {
                    sortOrderModifier = -1;
                }            if (log1.OpTime == log2.OpTime) {
                    return 0;
                }
                else if (log1.OpTime > log2.OpTime) {
                    return sortOrderModifier;
                }
                else {
                    return sortOrderModifier * -1;
                }        }希望对你有用。
      

  3.   

    你要对那列排序,在ColumnHeaderMouseClick就处理哪列。排序算法是你如何对改列的数据排序,返回小于0的数,0,大于0的数就行。