PDA

View Full Version : خاصیت RowFilter برای دیتاگرید



Sal_64
جمعه 15 شهریور 1387, 21:25 عصر
سلام
یک دیتاگرید دارم که اطلاعات از دیتابیس به اون منتقل میشه
می خام در رویداد کی پرس دیتاگرید کدی بنویسم که بر طبق یکی از فیلدها حالت جستجو داشته باشه که مثلا تایپ کردیم 1200 موقعیت رو بیاره روی اولین عدد 1200
در سایت جستجو کردم برای لیست با استفاده از دیتاویو توضیحاتی بود ، آیا یه چیز شبیه RowFilter برای دیتاگرید هم وجود داره



با تشکر

sarkhosh
شنبه 16 شهریور 1387, 00:01 صبح
من برای ایونت textchange نوشتم
دیتا ست رو بریز تو دیتا ویو
دیتاسورس گریدویو رو هم برابر با دیتاویو قرار بده
بعد هم تو ایونتی که می خوای دیتاویو را بفیلتر!
finish

Sal_64
شنبه 16 شهریور 1387, 10:45 صبح
سلام
از جوابتون ممنونم
حقیقتش زیاد متوجه نشدم
امکان داره برنامه ای کوتاه در این مورد اینجا قرار بدین

با تشکر:خجالت:

sarkhosh
شنبه 16 شهریور 1387, 12:55 عصر
void refresh()
{
SqlDataAdapter da = new SqlDataAdapter("select * from customer",
new SqlConnection(ConfigurationManager.ConnectionStrin gs["con"].ConnectionString));
ds.Clear();
da.Fill(ds, "customer");
dv = new DataView(ds.Tables["customer"]);
dataGridView1.DataSource = dv;
}
private void CustomerSearch_Load(object sender, EventArgs e)
{
refresh();
}
private void textBox1_TextChanged_1(object sender, EventArgs e)
{
dv.RowFilter = string.Format("( name like '{0}%')", textBox1.Text);
}

Sal_64
سه شنبه 19 شهریور 1387, 23:09 عصر
سلام
آقا تشکر
اما یه مطلب دیگه
چطور امکانش هست که فقط دیتاویو پیمایش شه ، یعنی چیزی از داخل اون حذف نشه و فقط در رکوردهای موجود در دیتاگرید ویو جابه جا شه و پس از پیدا کردن رکورد مورد نظر ، کاربر بتونه با کیبرد بالا و پایین بره و رکوردهای قبل و بعد از موقعیت جاری رو ببینه
یه چیز دیگه پس از زدن دکمه اینتردر دیتاگرید موقعیت جاری رکورد به رکورد بعدی منتقل میشه ، راهی هست که این اتفاق نیفته
با تشکر

Sal_64
شنبه 23 شهریور 1387, 19:50 عصر
سلام

یک ایده

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

یه ایده داشتم که خواستم دوستان ببینن و نظر بدن

تو یه آرایه دوبعدی که یه بعدش محتویات سلول مورد نظر و بعد دیگه اندیس ردیف سلول ها ست

توی رویداد keypress دیتاگرید

تابعی فراخوانی شه که در بعد اول آرایه جستجو کنه و با فشار هر کلید(اعداد فقط) جستجو را کامل تر کنه و در همین حین از بعد دوم ]اندیس رو استخراج کنه و موقعیت دیتاگرید رو به جای مورد نظر انتقال بده

حالا چرا آرایه دوبعدی ، احتمالا خیلی راحتتر که از همون اول در ردیف مورد نظر در دیتاگرید جستجو انجام شه ، حالا چطوری ؟

اگه راه ساده تری هم هست ، ممنون میشم راهنمایی کنین

با تشکر

hdv212
جمعه 05 مهر 1387, 21:23 عصر
ظاهرا شما دنبال یه همچین چیزی میگردی، نمونه برنامه رو برات گذاشتم، این برنامه رکوردهایی که با عبارت جستجو منطبق هستند رو رنگی میکنه.

ali_kashani
شنبه 06 مهر 1387, 08:36 صبح
ظاهرا شما دنبال یه همچین چیزی میگردی، نمونه برنامه رو برات گذاشتم، این برنامه رکوردهایی که با عبارت جستجو منطبق هستند رو رنگی میکنه.

سلام

1- ايا اين برنامه با VS 2008 نوشته شده

با تشكر.

Sal_64
یک شنبه 07 مهر 1387, 10:44 صبح
سلام

جناب وزیری با تشکر از توجه شما :بوس:


اما این کد خاصیت AutoComplete رو نداره

چطور این قابلیت رو میشه به اون اضافه کرد

با تشکر



دوستانی که می خوان بیشتر در مورداین سوال بدونن یه سری به این لینک هم بزنن

http://barnamenevis.org/forum/showthread.php?t=73957&highlight=bindingsource

با تشکر

Sal_64
یک شنبه 07 مهر 1387, 19:33 عصر
سلام
به همه دوستان
یه سوال داشتم
بعد از پیدا کردن موقعیت رکورد با دستور

dgv.Rows[index].Selected = true;به موقعیت مورد نظر رفته و اون رو انتخاب(به رنگ آبی در میاد) می کنه
اما بعد از فشردن کلید DOWN به جای اینکه از موقعیت فعلی به سمت پایین حرکت کنه
از اولین رکورد موجود در دیتاگرید شروع می کنه و پایین میاد

و اما سوال
می خوام از رکوردی که با دستور بالا انتخاب شده با استفاده از کلیدهای جهتی به سمت بالا و پایین حرکت کنم نه از اولین رکورد

با تشکر

Sal_64
سه شنبه 09 مهر 1387, 18:53 عصر
سلام

این برنامه رو نوشتم
لطفا باهاش کار کنید
علاوه بر مشکل بالا (سوال تاپیک فوق) یه مورد دیگه هم داره
لطفا اون رو ببینید و بررسی کنید :لبخندساده:

با تشکر

Sal_64
شنبه 13 مهر 1387, 12:41 عصر
سلام

به مهندسین عزیز :بوس:




ظاهرا سوال اونقدر مشکل بوده که کسی بهش جواب نداده !! :متعجب:

آخه داخل foxpro این کار قابل انجام

اینو من توی یه برنامه فاکس دیدم

احتمالا قابلیت های C# خودمون ! کمتر از فاکس نیست

پس چرا کسی جواب نداده :افسرده:

MShagi
سه شنبه 21 آبان 1387, 15:29 عصر
private void TextBox1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Down :
if (this.DataGridView1.Rows.Count < 2)
return;
int index=this.DataGridView1.CurrentRow.Index;
if (index ==this.DataGridView1.Rows.Count-1)
return;
this.DataGridView1[1,index+1].Selected = true;
this.DataGridView1.Rows[index + 1].Selected = true;

break;

case Keys.Up :
if (this.DataGridView1.Rows.Count < 2)
return;

int indexUp = this.DataGridView1.CurrentRow.Index;


if (indexUp == 0)
return;

this.DataGridView1[1, indexUp - 1].Selected = true;


this.DataGridView1.Rows[indexUp - 1].Selected = true;


break;

case Keys.Escape :
this.btnCancel.PerformClick();
break;
case Keys.Enter :
this.btnSelect.PerformClick();
break;
}
}
}