A group code about sort after move.

These codes is to introduce some item sort after any selected items move to one perticular item.

For example: move the 1th,3th,8th,10th line to the 5th line.


  1using System;
  2using System.Data;
  3using System.Configuration;
  4using System.Web;
  5using System.Web.Security;
  6using System.Web.UI;
  7using System.Web.UI.WebControls;
  8using System.Web.UI.WebControls.WebParts;
  9using System.Web.UI.HtmlControls;
 10
 11/// <summary>
 12/// Summary description for Sort
 13/// </summary>

 14public class Sort
 15{
 16    public DataSet SortFunction()
 17    {
 18        DataSet dataSet = CreateDataSet();
 19
 20        string[] CheckedArray = GetChecked().Split(',');
 21        int MovePos = Convert.ToInt32(GetMovePos());
 22        int LessInfo = 0;
 23        int GrateInfo = 1;
 24
 25        for (int i = 0; i < dataSet.Tables[0].Rows.Count; i++)
 26        {
 27            if (IsChecked((i+1).ToString(), CheckedArray))
 28            {
 29                if ((i+1< MovePos)
 30                {
 31                    dataSet.Tables[0].Rows[i]["Sequence"= MovePos+1 - GetLessCount(MovePos.ToString(), CheckedArray) + LessInfo;
 32                    LessInfo++;
 33                }

 34                else if ((i + 1== MovePos)
 35                {
 36
 37                }

 38                else
 39                {
 40                    dataSet.Tables[0].Rows[i]["Sequence"= MovePos + GrateInfo;
 41                    GrateInfo++
 42                }

 43            }

 44            else
 45            {
 46                if ((i+1< MovePos)
 47                {
 48                    dataSet.Tables[0].Rows[i]["Sequence"= Convert.ToInt32(dataSet.Tables[0].Rows[i]["Sequence"].ToString()) 
 49                        - GetLessCount((i+1).ToString(), CheckedArray);
 50                }

 51                else if ((i + 1== MovePos)
 52                {
 53                    //dataSet.Tables[0].Rows[i]["Sequence"] = MovePos - GetLessCount(((int)(i + 1)).ToString(), CheckedArray);
 54                }

 55                else
 56                {
 57                    dataSet.Tables[0].Rows[i]["Sequence"= Convert.ToInt32(dataSet.Tables[0].Rows[i]["Sequence"].ToString())
 58                        + GetGreateCount(MovePos.ToString(), CheckedArray) - GetLessCount((i + 1).ToString(),MovePos.ToString(), CheckedArray); 
 59                }

 60            }

 61        }

 62        return dataSet;
 63    }

 64    private DataSet CreateDataSet()
 65    {
 66        DataSet dataSet = new DataSet();
 67        dataSet.Tables.Add();
 68        dataSet.Tables[0].Columns.Add("Text");
 69        dataSet.Tables[0].Columns.Add("Sequence");
 70
 71        for (int i = 0; i < 10; i++)
 72        {
 73            DataRow dataRow = dataSet.Tables[0].NewRow();
 74            dataRow["Text"= i+1;
 75            dataRow["Sequence"= i+1;
 76            dataSet.Tables[0].Rows.Add(dataRow);
 77        }

 78        return dataSet;
 79    }

 80    private string GetChecked()
 81    {
 82        string Checked = "1,3,8,10";
 83        return Checked;
 84    }

 85    private string GetMovePos()
 86    {
 87        string MovePos = "5";
 88        return MovePos;
 89    }

 90    private bool IsChecked(string value, string[] array)
 91    {
 92        bool Checked = true;
 93        for (int i = 0; i < array.Length; i++)
 94        {
 95            if (array[i] == value)
 96            {
 97                return Checked;
 98            }

 99        }

100        Checked = false;
101        return Checked;
102    }

103    private int GetGreateCount(string value, string[] array)
104    {
105        int count = 0;
106        for (int i = 0; i < array.Length; i++)
107        {
108            if (Convert.ToInt32(array[i]) > Convert.ToInt32(value))
109            {
110                count++;
111            }

112        }

113        return count;
114    }

115    private int GetLessCount(string value, string[] array)
116    {
117        int count = 0;
118        for (int i = 0; i < array.Length; i++)
119        {
120            if (Convert.ToInt32(array[i]) <= Convert.ToInt32(value))
121            {
122                count++;
123            }

124        }

125        return count;
126    }

127    private int GetLessCount(string MaxValue, string MinValue,string[] array)
128    {
129        int count = 0;
130        for (int i = 0; i < array.Length; i++)
131        {
132            if (Convert.ToInt32(array[i]) < Convert.ToInt32(MaxValue) && Convert.ToInt32(array[i]) > Convert.ToInt32(MinValue))
133            {
134                count++;
135            }

136        }

137        return count;
138    }

139
140}

141

posted on 2006-09-25 14:41  广思  阅读(255)  评论(0编辑  收藏  举报

导航