PDA

View Full Version : حرفه ای: ایجاد فرایند جابجایی در بین سطر های یک datagridview



ahmad.jafery
دوشنبه 05 بهمن 1394, 10:24 صبح
با سلام وقت بخیر
دوستان
من در برنامه ام یک گریدویو ایجاد کردم که با یک تابع درون یک تایمر اطلاعات رو از پایگاه داده ریفرش میکنه

و یک تابع درون یک تایمر دیگر سطر اول رو میگیره درون یک ارایه و در سطر اخر اضافه میکنه و سطر اول رو حذف میکنه که یک چرخش مثل برد اعلامیه بوجود میاد

ولی برای بار اول اجرا که یک سطر خالی در اخر گریدویو وجود داره این فرایند انجام میشه اما بار دوم دیگه سطر اول به انتها اضافه نمیشه

public void animation()
{


int s = dataGridView1.Rows.Count;
s -= 1;
string flycode = dataGridView1[0, 0].Value.ToString();
string origin = dataGridView1[1, 0].Value.ToString();
string destination = dataGridView1[2, 0].Value.ToString();
string airco = dataGridView1[3, 0].Value.ToString();
string time = dataGridView1[4, 0].Value.ToString();
string date = dataGridView1[5, 0].Value.ToString();
string[] row1 = new string[] { flycode, origin, destination, airco, time, date };


for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
this.dataGridView1[i, s].Value = row1[i];
}
dataGridView1.Rows.Remove(dataGridView1.Rows[0]);
}
دوستان اگر تکنیک ساده تر وجود داره راهنمایی کنید ممنونم

اینم گریدویو
138639

khokhan
دوشنبه 05 بهمن 1394, 10:38 صبح
بر اساس یک ستون از گرید مخصوصا ستون id مرتب سازی نزولی انجام بدی


this.dataGridView1.Sort(this.dataGridView1.Columns["Name"],ListSortDirection.Ascending);

ahmad.jafery
دوشنبه 05 بهمن 1394, 12:24 عصر
سلام .
دوست عزیز این چیزی که فرمودید مرتب سازیه . ولی من میخوام هر بار فرض کن سه سطر داریم .
سطر یک میره اخر و سطر دو میاد اول
بعدش سطر دو میره اخر و سطر سه میاد اول

یک چرخش ایجاد میشه:قلب:
لطفا کمکم کنید

davidrobert
دوشنبه 05 بهمن 1394, 13:45 عصر
داداش این هم کد سورس با ADO
http://s7.picofile.com/file/8235230900/dateSearch_ADO_For_Date.7z.html
میاد تاریخ ورودی با خروجی رو بررسی میکنه مقدار رو نمایش میده

ahmad.jafery
دوشنبه 05 بهمن 1394, 14:09 عصر
سلام داداش
این پروژه ای که دادید رو چه استفاده ای میتونم ازش داشته باشم ؟


من که عمل سرچ ندارم .
میخوام سطرهای datagridview جاشونو با هم عوض کنند

Mahmoud.Afrad
دوشنبه 05 بهمن 1394, 19:08 عصر
به اینصورت بنویسید

public void Animation()
{
DataGridViewRow row = dataGridView1.Rows[0];
dataGridView1.Rows.Remove(row);
dataGridView1.Rows.Add(row);
}
برای حذف سطر خالی از انتها AllowUserToAddRows رو False کنید.

khokhan
دوشنبه 05 بهمن 1394, 19:19 عصر
سلام .
دوست عزیز این چیزی که فرمودید مرتب سازیه . ولی من میخوام هر بار فرض کن سه سطر داریم .
سطر یک میره اخر و سطر دو میاد اول
بعدش سطر دو میره اخر و سطر سه میاد اول

یک چرخش ایجاد میشه:قلب:
لطفا کمکم کنید

گریدی که به بانک متصل باشه امکان حذف و اضافه سطر نداره :لبخند:
پس مجبور هستین تا از مجموع ردیفهای گرید یه تیبل درست کنین و جابجایی سطر ها رو توی تیبل جدیدانجام بدین
و درنهایت دیتاسورس قبلی رو از گرید پاک کنین و تیبل جدید رو بهش وصل کنین

پس با این حساب رویداد timer1_Tick به این شکل در می اد :


private void timer1_Tick(object sender, EventArgs e)
{
DataTable table = (DataTable)(dataGridView1.DataSource);
DataRow selectedRow = table.Rows[dataGridView1.CurrentRow.Index];
DataRow newRow = table.NewRow();
int last = dataGridView1.Rows.Count - 1;
newRow.ItemArray = selectedRow.ItemArray;
table.Rows.Remove(selectedRow);
table.Rows.InsertAt(newRow, last);
dataGridView1.DataSource = null;
dataGridView1.Rows.Clear();
dataGridView1.DataSource = table;

}

به عبارتی مثل این می شه :

ahmad.jafery
سه شنبه 06 بهمن 1394, 13:36 عصر
سلام
بسیار از کمکت سپاس گذارم
khokhan (http://barnamenevis.org/member.php?131732-khokhan) داداش ممنون.:قلب: