عمل ترتيب بالتقديرات داخل DataTable

شخص ما , كان يسأل أن عمل custom Sort  , بمعنى انه لديه تقديرات للدرجات فى DataTable  , مثال “Excellent” ,”VeryGood”,”Good” . فيريد الترتيب على هذا النحو .

أمر محير قليلاً , إذا أن الترتيب المتاح هو إما تصاعدياً  او تنازلياً , ولكن لنكتب بعض الكود حتى تتم العملية :-

 protected void Page_Load(object sender, EventArgs e)
 {
 DataTable dt = new DataTable();
 dt.Columns.AddRange (new []{new DataColumn("Name"),new  DataColumn ("Degree")});
 dt.Rows.Add("Ahmed", "Good");
 dt.Rows.Add("Moataz", "Good");
 dt.Rows.Add("Moaz", "VeryGood");
 dt.Rows.Add("Diaa", "Excellent");
 dt.Rows.Add("Ali", "Excellent");</code>

CustomSort(ref dt, "Degree");

GridView1.DataSource = dt.DefaultView;
 GridView1.DataBind();
 }
 public void CustomSort(ref DataTable dt, string columnName)
 {
 DataTable SortedTable = dt.Clone();
 string[] Degrees = { "Excellent", "VeryGood", "Good" };
 foreach (var item in Degrees)
 {
 string Expression = string.Format("{0}='{1}'", columnName, item);
 foreach (DataRow row in dt.Select(Expression))
 {
 SortedTable.Rows.Add(row.ItemArray);
 }
 }

dt = SortedTable;
 }

 

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s