PDA

View Full Version : سوال: مرتب کردن دیتاگریدویو براساس دو ستون



forodo
شنبه 23 فروردین 1393, 10:03 صبح
سلام
من با کد زیر می تونم براساس 2 ستون مرتب کنم ولی اگر با روش دیگری دیتاگریدویو رو پر کنم با این کدها نمی شه انجام داد.
کدی که باهاش مرتب کردن رو انجام می دم:
DataView view = objDataSet.Tables["tblLetter3"].DefaultView;
view.Sort = "ErjaDate DESC, ErjaTime DESC";
dataGridView1.DataSource = view;
کدی که دیتاگریدویو رو پر می کنم ولی نمی شه از روش بالا استفاده کرد:
foreach (DataRow r in objDataSet.Tables["tblLetter3"].Rows)
{
dataGridView1.Rows.Add();
dataGridView1.Rows[i].Cells["ID"].Value = r["DID"].ToString();
dataGridView1.Rows[i].Cells["LetterID"].Value = r["LetterID"].ToString();
if (dataGridView1.Rows[i].Cells["LetterID"].Value.ToString() == "")
dataGridView1.Rows[i].Cells["LetterID"].Value = "هنوز توسط دبیرخانه شماره نشده است";
dataGridView1.Rows[i].Cells["Sender"].Value = Program.chk.GetFullName(r["senderUserName"].ToString());
dataGridView1.Rows[i].Cells["Subject"].Value = r["Subject"].ToString();
dataGridView1.Rows[i].Cells["type"].Value = r["tabaghe"].ToString();
dataGridView1.Rows[i].Cells["jahat"].Value = r["jahat"].ToString();
dataGridView1.Rows[i].Cells["mohlat"].Value = "-";
dataGridView1.Rows[i].Cells["senddate"].Value = r["ErjaDate"].ToString();
dataGridView1.Rows[i].Cells["sendtime"].Value = r["ErjaTime"].ToString();
dataGridView1.Rows[i].Cells["bazgasht"].Value = r["bazgasht"].ToString();
dataGridView1.Rows[i].Cells["peyrov"].Value = r["peyrov"].ToString();
dataGridView1.Rows[i].Cells["IsRead"].Value = Convert.ToBoolean(r["IsRead"]);
dataGridView1.Rows[i].Cells["varede"].Value = "نامه صادره از شرکت";

i++;
}

forodo
شنبه 23 فروردین 1393, 10:12 صبح
DataView view = (DataView)dataGridView1.DataSource;
view.Sort = "senddate DESC, sendtime DESC";
dataGridView1.DataSource = view;

forodo
یک شنبه 24 فروردین 1393, 09:00 صبح
از کد زیر استفاده می کنم ولی ایراد می گیره:
ایرادش در اینجاست. (http://barnamenevis.org/showthread.php?447979-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D9%BE%DB%8C%D8%BA%D8%A7%D9%85-%D8%AE%D8%B7%D8%A7-%D9%87%D9%86%DA%AF%D8%A7%D9%85-%D8%A8%D8%A7%D8%B2-%D8%B4%D8%AF%D9%86-%D9%81%D8%B1%D9%85)
DataView view = (DataView)dataGridView1.DataSource;
view.Sort = "senddate DESC, sendtime DESC";
dataGridView1.DataSource = view;

forodo
دوشنبه 25 فروردین 1393, 09:13 صبح
راه دیگه ای به جز کدهای بالا هست که بشه دیتاگریدویو رو بر اساس 2 تا ستون مرتب کرد؟

forodo
سه شنبه 26 فروردین 1393, 13:21 عصر
چون من دیتاگریدویو رو با دادن دیتاست به دیتاسورس گریدویو پر نمی کنم نمی تونم از این روش استفاده کنم.
یعنی به جز این راه، راه دیگه ای برای مرتب کردن دیتاگریدویو بر اساس 2 تا ستون نیست؟

behzadkhan
سه شنبه 26 فروردین 1393, 14:19 عصر
با سلام

اگه اشتباه نکنم بدون در نظر گرفتن DataSource می توان از این روش استفاده کرد:

(البته در موردی که در ستون فقط عدد بود تست کردم)

==================================================


this.dataGridView1.Sort(this.dataGridView1.Columns["senddate"], ListSortDirection.Descending);


با تشکر

forodo
سه شنبه 26 فروردین 1393, 18:17 عصر
اینجوری فقط میشه براساس یک ستون سورت کرد.
من براساس 2تا ستون می خوام.

behzadkhan
سه شنبه 26 فروردین 1393, 19:28 عصر
سلام بی نهایت

دوست عزیز
forodo (http://barnamenevis.org/member.php?63024-forodo) جان

================================================== =============


اگر در تاپیک های مرتبطتان مشکل دیتاسورستان حل شده (البته اگر درست گفته باشم) حالا می توانید از ویو استفاده کنید

در غیر این صورت

اگر چیز جدیدی پیدا کردم

کمکتان خواهم کرد

با تشکر

aslan
سه شنبه 26 فروردین 1393, 19:42 عصر
این لینکها را بینید :
http://www.codeproject.com/Articles/196088/Multi-Column-Sorting-in-DataGridView
http://stackoverflow.com/questions/4646873/sort-a-datagridview-on-multiple-columns