PDA

View Full Version : سوال در مورد تشخیص سورت بودن گرید؟



نیما حتمی
چهارشنبه 18 خرداد 1390, 12:59 عصر
با سلام
دوستان من میخوام تشخیص بدم که آیا گرید براساس یک فیلد سورت هست یا نه(نمی خوام سورت کنم فقط بدونم سورت هست براساس یک فیلد یا نه)

یوسف زالی
چهارشنبه 18 خرداد 1390, 14:04 عصر
سلام.
برای اینکار باید تمام داده هاشو از اول تا آخر پیمایش کنی و تست کنی

ma.rad
چهارشنبه 18 خرداد 1390, 15:11 عصر
راحت ترین کار اینه که چند بار تست کنید

نیما حتمی
چهارشنبه 18 خرداد 1390, 15:30 عصر
منظورتون از تست چیه و چطوری؟

ma.rad
چهارشنبه 18 خرداد 1390, 16:15 عصر
یه شر ط بزار تست کن مثل این
if (dataGridView1.Columns[columnIndex].HeaderCell.SortGlyphDirection == SortOrder.None )
این مرجع نگا کن:
http://stackoverflow.com/questions/1377568/c-datagridview-sorting-with-generic-list-as-underlying-source

نیما حتمی
شنبه 21 خرداد 1390, 13:33 عصر
دوست عزیز من این دستور رو نوشتم که بره تا وقتی که گرید براساس اون فیلد خاص سورت نیست جای ستون اول با ستون دوم رو براساس چیزی که در دستور می بینی عوض کنه ولی این حلقه بینهایته چیکار میشه کرد که تا وقتی این حلقه کار کنه که گرید سورت نیست براساس ستون اول


while (dataGridView1.Columns[1].HeaderCell.SortGlyphDirection == System.Windows.Forms.SortOrder.None)
{
for (int i = 0; i < dataGridView1.RowCount - 1; i++)
{

if ((Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value) > Convert.ToInt32(dataGridView1.Rows[i + 1].Cells[1].Value)) || (Convert.ToInt32(dataGridView1.Rows[i].Cells[3].Value.ToString().Replace("/", "")) > Convert.ToInt32(dataGridView1.Rows[i + 1].Cells[3].Value.ToString().Replace("/", ""))))
{
int temp = Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value);
dataGridView1.Rows[i].Cells[1].Value = dataGridView1.Rows[i + 1].Cells[1].Value;
dataGridView1.Rows[i + 1].Cells[1].Value = temp;


}

}

نیما حتمی
یک شنبه 22 خرداد 1390, 10:05 صبح
دوست عزیز این دستور چک کردن سورت بصورت هوشمند نیست؟یعنی خودش نمی تونه تشخیص بده که گرید براساس اون ستون مرتب هست یا نه؟من در تاپیک بالا در یک حلقهwhile گذاشتم این دستورو ولی تا بی نهایت حلقه تکرار میشه کاربرم نمی تونه دستی بره گریدو براساس اون ستون مرتب کنه که پس چطور میشه این موضوع رو حل کرد؟