تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
فلتر للداتا جريد فيو
#11
(03-09-20, 02:36 AM)Anas Mahmoud كتب : اخي الكريم انصحك ان تغير طريقة اضافة البيانات للداتا جريد مباشرة عن طريق DataGridView1.Rows.Add

انصحك بملئ DataTable اولا ومن ثم جعله DataSource للداتا جريد فيو ، ذلك يتيح لك الاستفادة من الخاصية Filter الخاصة بالداتا تابل كما موضح بالمشاركات السابقة

ومع ذلك اذا لم ترد تغيير ايا من كودك يجب عليك اختبار الصفوف يدويا واظهار واخفاء ما تريد حسب محتوى التكست بوكس 

الرقم 0 يمثل العمود الاول غيره الى العمود الذي تريد التغيير له

كود :
   Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
       Dim txt As TextBox = sender
       For Each row As DataGridViewRow In DataGridView1.Rows
           Dim cell = row.Cells(0)
           If Not cell.Value Is Nothing Then
               If cell.Value.ToString.Contains(txt.Text.Trim) Then
                   row.Visible = True
               Else
                   row.Visible = False
               End If
           End If
       Next
   End Sub

الكود يقوم يدويا بالمرور على الصفوف واخفاء الغير مطابق للشرط وهو محتوى مربع النص

المصدر https://stackoverflow.com/a/48557623

لكي يكون الكود DRY ولا تكرر نفسك عرف الاجراء التالي عام للبرنامج كله ، في موديول مثلا 

كود :
   Sub Filter(Datagridview As DataGridView, index As Integer, Selector As Func(Of String, Boolean))
       For Each row As DataGridViewRow In Datagridview.Rows
           Dim cell = row.Cells(index)
           If Not cell.Value Is Nothing Then
               If Selector(cell.Value.ToString) Then
                   row.Visible = True
               Else
                   row.Visible = False
               End If
           End If
       Next
   End Sub

وعند الحاجة استدعيه في سطر واحد : 

كود :
   Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
       Dim txt As TextBox = sender
       Filter(DataGridView1, 0, Function(x) x.Contains(txt.Text))
   End Sub

تحديث هام : جربتها لعدد كبير من الصفوف وتأخذ وقت طويل جدا لذا لا انصح بها اطلاقا ، بدلا من ذلك اضف البيانات الى داتا تابل اولا وبعد ذلك اسنده الى الخاصية Datasource

اشكرك اخى الكريم
هذا هو ما كنت اقصد والحمد لله
ولكن انا اقوم بعملية جمع واستخدم الكود التالى لجمع العمود
كود :
Dim sum As Integer = 0
        For i As Integer = 0 To dgvItems.Rows.Count - 1
            sum += Convert.ToInt32(dgvItems.Rows(i).Cells(2).Value)
        Next
        Label4.Text = sum.ToString()
ولكن يقوم بجمع كل البيانات داخل العمود
المطلوب انه يجمع فقط البيانات الظاهرة اى البيانات الناتجه من عملية البحث
بمعنى اخر يجمع فقط الظاهر
وشكراا مرة اخرى
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
فلتر للداتا جريد فيو - بواسطة ahmedramzyaish - 30-08-20, 01:41 AM
RE: فلتر للداتا جريد فيو - بواسطة ahmedramzyaish - 30-08-20, 03:30 AM
RE: فلتر للداتا جريد فيو - بواسطة Anas Mahmoud - 30-08-20, 09:43 AM
RE: فلتر للداتا جريد فيو - بواسطة ahmedramzyaish - 31-08-20, 12:42 AM
RE: فلتر للداتا جريد فيو - بواسطة Anas Mahmoud - 31-08-20, 07:12 AM
RE: فلتر للداتا جريد فيو - بواسطة ahmedramzyaish - 01-09-20, 03:29 AM
RE: فلتر للداتا جريد فيو - بواسطة Anas Mahmoud - 01-09-20, 08:48 AM
RE: فلتر للداتا جريد فيو - بواسطة ahmedramzyaish - 03-09-20, 01:05 AM
RE: فلتر للداتا جريد فيو - بواسطة Anas Mahmoud - 03-09-20, 02:36 AM
RE: فلتر للداتا جريد فيو - بواسطة ahmedramzyaish - 05-09-20, 04:38 AM
RE: فلتر للداتا جريد فيو - بواسطة Anas Mahmoud - 05-09-20, 02:40 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  التحكم في ارتفاع صفوف الداتا جريد فيو cvcvcv 3 4,674 09-10-24, 08:28 PM
آخر رد: Kamil
  اضافة اسطر فارعة في الداتا جريد فيو ismaeel 1 563 25-08-24, 02:43 AM
آخر رد: Taha Okla
  ارجو المساعدة في كود مقارنة عامود داخل الداتا جريد فيو alachk 11 1,116 11-08-24, 11:44 AM
آخر رد: alachk
  كيف اقدر اجلب بيانات من ملف اكسل الى داتا جريد فيو alachk 5 791 07-08-24, 08:49 PM
آخر رد: alachk
  مشكلة فى جمع عمود فى داتا جريد فيو احمد خطاب 3 647 06-03-24, 07:49 PM
آخر رد: احمد خطاب
  حذف الاسطر الفارغه من الداتا جريد فيو اليوم السابع 3 2,999 03-03-24, 12:57 AM
آخر رد: مصمم هاوي
  كيفية جمع أرقام عمود فى الداتا جريد فيو بناءاً على بيانات معينة heem1986 5 840 25-02-24, 11:26 PM
آخر رد: heem1986
  كيفية تنفيذ امر عند التعليم على checkbox بالداتا جريد فيو heem1986 2 634 21-02-24, 01:37 AM
آخر رد: heem1986
  انتقال المؤشر بين الخلايا في نفس الصف في الداتا جريد فيو fares_mohammed 2 854 03-11-23, 09:57 PM
آخر رد: fares_mohammed
  يوجد مشكلة عند تحميل البيانات فى كمبوبوكس داخل داتا جريد new_programer 2 761 17-10-23, 06:51 PM
آخر رد: new_programer

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم