ورود

View Full Version : جستجو در datagrid



unique1984
جمعه 28 تیر 1387, 10:32 صبح
سلام دوستان
من می خوام وقتی عبارتی رو مثلا در یک textbox می نویسم و اینترو میزنم ، در دیتا گیرید اون رکورد پیدا شده انتخاب بشه.
نمی خوام دیتا گیریدم فیلتر بشه ، فقط بره سر همون رکورد یافت شده.
با تشکر

خانم گل
جمعه 28 تیر 1387, 11:51 صبح
foreach (DataGridViewRow row in dgv.Rows)
if (row.Cells[0].Value.ToString().StartsWith(textBox.Text))
this.BindingContext[dgv.DataSource].Position = row.Index;

unique1984
جمعه 28 تیر 1387, 15:16 عصر
مرسی خانم گل عزیز.
من میخواستم این کار روی datagrid انجام بشه و نه روی datagridview.
اما حالا که کد مربوط به datagridview رو گذاشتی ، در خط دوم به من ارور میده.
اما کد زیر بدون ارور جواب می ده:

BindingSource bs = new BindingSource();
bs.DataSource = (DataTable)dGV.DataSource;
dGV.SelectionMode =DataGridViewSelectionMode.FullRowSelect;
int a = bs.Find("نام فیلد", textBox1.Text);
dGV.ClearSelection();
dGV.Rows[a].Selected = true;
this.BindingContext[dGV.DataSource].Position =dGV.SelectedRows[0].Index;


حالا اگه بخواهیم محتویات row انتخاب شده رو جایی بریزیم (مثلا در یک textbox) این کدها رو هم اضافه می کنیم(من فقط مقدار یکی از ستونهاشو برداشتم):

int b = dataGridView1.SelectedRows[0].Index;
textBox2.Text = dataGridView1[1, b].Value.ToString();


اگه کسی کد بهینه تر و بهتری داره بگه.

emad_nemati
دوشنبه 28 بهمن 1387, 00:37 صبح
خیلی ممنون عماد

roze_abi-r
چهارشنبه 14 اردیبهشت 1390, 11:07 صبح
سلام

من هم کد دیگه ای واسه این کار پیدا نکردم
ببین این کارتو رو راه میندازه


Dim i As Integer
For i = 0 To DataGridView1.Rows.Count - 1
If CStr(DataGridView1.Rows(i).Cells(0).Value) = Trim(text1.text)Then
DataGridView1.Item(0, i).Selected = True
Exit For
End If
Next ' i

بجای 0 در خط 3،4 ایندکس ستونی رو که قراره رکورد مورد نظر در اون جستجو بشه ، قرار بدین

اگه SelectionMode دیتا گرید ویو روی FullRowSelect تنظیم بشه کل سطری که کلمه پیدا شده در اون سطر قرار داره انتخاب میشه

ولی اگه SelectionMode دیتا گرید ویو روی CellSelect تنظیم بشه فقط خانه ای که کلمه پیدا شده در اون سطر قرار داره انتخاب میشه

milad222
چهارشنبه 05 مرداد 1390, 00:59 صبح
من معنیه این قسمت رو نفهمیدم.

(Trim(text1.text

یعنی چی؟

roze_abi-r
چهارشنبه 05 مرداد 1390, 20:43 عصر
من معنیه این قسمت رو نفهمیدم.

(Trim(text1.text

یعنی چی؟



کاربرد این تابع واسه زمانی هست که در کادر ورود یا همون textbox1 کاراکتر خالی توسط کاربر وارد میشه
و این تابع که از توابع کتابخانه ی خود دات نت هست فضای خالی یا همون SPACE رو از اول و آخر متن نوشته شده در داخل textbox1 رو در خروجی خذف میکنه

مثال :

متن نوشته شده در textbox1 به این صورت هست
" roze_Abi-r "


بعد از کاربرد این تابع این نوشته به شکل زیر درمیاد
"roze_Abi-r"


البته این تابع به غیر از این به دو صورت دیگه قابل استفاده هست
RTrim
LTrim

تابع RTrim فضای خالی سمت راست یک متن رو در خروجی حذف میکنه
مثال :
" roze_Abi-r"
بعد از کاربرد این تابع این نوشته به شکل زیر درمیاد
"roze_Abi-r"



تابع Ltrim هم فضای خالی سمت چپ یک متن رو در خروجی حذف میکنه
مثال :
"roze_Abi-r "
بعد از کاربرد این تابع این نوشته به شکل زیر درمیاد
"roze_Abi-r"