PDA

View Full Version : فیلتر کردن اطلاعات در DataGrid



hadimtn
شنبه 02 خرداد 1394, 17:47 عصر
1. با استفاده از تکه کد زیر عمل جستجو رو در رویداد KeyPerss انجام میدم:

var sq = db.TestTable.Where(s => s.Name.Contains(txt_Name.Text));
if (sq.Count() != 0)
{
Viewer.DataSource = sq; //DataGrideView
}
در این حالت باید سه حرف رو بزنم بعد Contains اعمال بشه. (حالا شاید با توجه به داده های موجود فیلتر میکنه که بنده اطلاعی ندارم!!!)
میخوام اولین حرفی که داخل TextBox میزنم عمل فیلتر گذاری انجام بشه. بر فرض مثال حرف " ف " که وارد شد تمام کلماتی که با این حرف شروع میشن داخل دیتاگرید نمایش داده بشن.
همینطور اگر حرف های بعدی یه کلمه وارد شد . . . به جای Contains از چی استفاده کنم که مشکلم حل بشه؟! (چون جستجو با Contains اگر حرف وسط کلمه هم باشه اون کلمه رو میاره.)

2. در ضمن چه جوری میتونم اطلاعات همون پیاگاه داده رو توی TextBox بایند کنم؟!

3. وقتی حرف‌ها رو یکی یکی پاک میکنم در واقع یه back space عقب تر از منه :متفکر: اینو چیکارش کنم؟!
مثلا کلمه های ali و alireza رو در نظر بگیرید، وقتی ali تایپ شده هر دو فیلد هستن، r رو که میزنم فقط alireza نمایش داده میشه. ولی وقتی r رو پاک میکنم همچنان alireza باقی میموه در حالی که باید ali هم اضافه بشه. برای اینکه علی بیاد باید i رو هم پاک کنم.


// با عرض معذرت از تعدد سوال‌ها

Mahmoud.Afrad
شنبه 02 خرداد 1394, 20:44 عصر
اول اینکه به جای contain از متد startwith استفاده کن.

دوم اینکه برای بایند کردن باید از bindinglist استفاده کنی
http://barnamenevis.org/showthread.php?446451

سوم اینکه این کدها رو در رویداد textchanged بنویس.