PDA

View Full Version : سوال: دیتاگرید ساده با جستجو



heivin
چهارشنبه 28 مرداد 1388, 01:32 صبح
یک دیتاگرید ساده میخوام بسازم که چند امکان ساده داشته باشه اگه ممکنه راهنمایی کنید
1-بالای هر ستون جایی برای جستجو داشته باشه به این صورت که اگه حرفی تایپ شد اولین رکوردی که با اون حرف شروع میشه انتخاب شه
2-مکان نما همیشه و در هر حال روی باکس جستجو باشه یعنی اگه کاربر در حال بالا و پایین رفتن در گرید بود و حرفی تایپ کرد به ادامه کادر جستجو اضافه شه(لازم نباشه رو باکس جستجو کلیک کرد)
اینم یک تصویر نمونه که ضمیمه کردم

hozouri
چهارشنبه 28 مرداد 1388, 09:07 صبح
1-بالای هر ستون جایی برای جستجو داشته باشه به این صورت که اگه حرفی تایپ شد اولین رکوردی که با اون حرف شروع میشه انتخاب شه
2-مکان نما همیشه و در هر حال روی باکس جستجو باشه یعنی اگه کاربر در حال بالا و پایین رفتن در گرید بود و حرفی تایپ کرد به ادامه کادر جستجو اضافه شه(لازم نباشه رو باکس جستجو کلیک کرد)
اینم یک تصویر نمونه که ضمیمه کردم

دوست عزیز از dataTable یا dataSet یا ... غیره یه کپی بگیر(این اطلاعات اصلی است) بعد با یه حلقه درون این دیتا اگر سطر های مورد نظر یافت شد در یه DataTable دیگه بریز و به گرید وصل کن.(برای مقایسه هم می تونی از متد Contains استفاده کنی)

برای جواب دوم در رویداد KeyDown تکست باکس کد زیر رو بنویس و فوکوس رو روی تکست باکس قرار بده ....



private void TextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up)
{
if (grid.RowCount != 0)
{
if (grid.CurrentRow != null)
{
if (grid.CurrentRow.Index > 0)
{
grid.CurrentCell = grid[0, grid.CurrentRow.Index - 1];
}
}
}
}
else if (e.KeyCode == Keys.Down)
{
if (grid.RowCount != 0)
{
if (grid.CurrentRow != null)
{
if (grid.CurrentRow.Index < grid.RowCount)
{
grid.CurrentCell = grid[0, grid.CurrentRow.Index + 1];
}
}
}
}
}

heivin
پنج شنبه 29 مرداد 1388, 02:10 صبح
ممنون جناب حضوری
یه مشکل دیگه در رابطه با گرید هست اگه ممکنه یه نگاهی بش بندازید
ممنون:
http://barnamenevis.org/forum/showthread.php?t=158403

heivin
پنج شنبه 29 مرداد 1388, 02:17 صبح
موقعی که بخوایم اطلاعات یک ستون رو ویرایش کنیم، با تایپ اولین کاراکتر همه اطلاعات آن سلول از گرید پاک میشود. این مشکل رو چجوری میشه حل کرد طوریکه خاصیت EditMode روی EditOnKeystroke باشه چون امکاناتی داره که نمیخوام از دستش بدم

mpggcobol
پنج شنبه 29 مرداد 1388, 09:49 صبح
فرض کنید سه تا ستون دارید


DataTable dtSearch;
Yourdatagrid.DataSource = dtSearch;
dtSearch.DefaultView.RowFilter = "Column1" + textbox1.Text.Trim() + "%' and Column2 like'%" + textboxe2.Text.Trim() + "%' and Column3 like'%" + textbox3.Text.Trim() + "%'";

heivin
پنج شنبه 29 مرداد 1388, 20:51 عصر
موقعی که بخوایم اطلاعات یک ستون رو ویرایش کنیم، با تایپ اولین کاراکتر همه اطلاعات آن سلول از گرید پاک میشود. این مشکل رو چجوری میشه حل کرد طوریکه خاصیت EditMode روی EditOnKeystroke باشه چون امکاناتی داره که نمیخوام از دستش بدم
کسی میدونه چجوری این مشکل حل میشه؟

heivin
دوشنبه 02 شهریور 1388, 21:40 عصر
? دوستان کسی میدونه راهنمایی کنه. ممنون