تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] تصفية داتا جريد
#1
عندي نموذج به داتا جريد و به حدث selection change يعمل الصورة جيدة و كذلك يوجد اداة تصفية الصفوف طبقا للتاريخ 
او الاسم او الوظيفة 
عند تشغيل اداوات التصفية لا يستجيب الحدث selection change 
ارجو الافادة
الرد }}}
تم الشكر بواسطة:
#2
الصف المحدد لا يتغير عند فرز الأعمدة
على سبيل المثال إذا كانت لديك dataGridView بها 4 صفوف Rows وقمت بتحديد الصف الثالث ثم ضغطت على رأس العمود column header لفرز الصفوف حسب قيمة خلايا هذا العمود
فإن الاختيار لن يتغير من الصف الثالث الذي اخترته على الرغم من أن بيانات الصف قد تغيرت
فالإختيار هنا يتم على رقم الصف في الأداة index وليس على محتوى خلايا الصف

لهذا عليك أولا أن تميز هذا الصف وتخزن قيمة خاصة به في متغير نصي قبل اتمام عملية الفرز

مثال اذا كانت عملية الفرز عندك تعتمد على الضغط على راس العمود:
كود :
void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
   if (e.RowIndex == -1)
   {
       selected = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
   }
}
هنا خزنت قمية الخلية الاولى من السطر المحدد في متغير selected - عليك اختيار قيمة لا تتكرر في باقي الصفوف مثل رقم متسلسل او اسم
لاحظ ان شرط التنفيذ هو ان يكون العمود المضغوط رقمه -1 وهو رقم خلية راس العمود

الان تحتاج الى استخدام حدث sorted الذي ينفذ بعد الفرز
بحيث ستغير الصف المحدد الى الصف الذي يطابق محتوى الخلية المحددة قيمة المتغير selected
وبعدها سينفذ تلقائيا حدث selection_changed

هذا رابط المصدر ولو انه مرتبط ب SortableBindingList
http://stackoverflow.com/questions/48195...pplication
الرد }}}
تم الشكر بواسطة: amgad525 , amgad525
#3
(18-12-16, 01:56 AM)محمد كريّم كتب : الصف المحدد لا يتغير عند فرز الأعمدة
على سبيل المثال إذا كانت لديك dataGridView بها 4 صفوف Rows وقمت بتحديد الصف الثالث ثم ضغطت على رأس العمود column header لفرز الصفوف حسب قيمة خلايا هذا العمود
فإن الاختيار لن يتغير من الصف الثالث الذي اخترته على الرغم من أن بيانات الصف قد تغيرت
فالإختيار هنا يتم على رقم الصف في الأداة index وليس على محتوى خلايا الصف

لهذا عليك أولا أن تميز هذا الصف وتخزن قيمة خاصة به في متغير نصي قبل اتمام عملية الفرز

مثال اذا كانت عملية الفرز عندك تعتمد على الضغط على راس العمود:
كود :
void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
   if (e.RowIndex == -1)
   {
       selected = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
   }
}
هنا خزنت قمية الخلية الاولى من السطر المحدد في متغير selected - عليك اختيار قيمة لا تتكرر في باقي الصفوف مثل رقم متسلسل او اسم
لاحظ ان شرط التنفيذ هو ان يكون العمود المضغوط رقمه -1 وهو رقم خلية راس العمود

الان تحتاج الى استخدام حدث sorted الذي ينفذ بعد الفرز
بحيث ستغير الصف المحدد الى الصف الذي يطابق محتوى الخلية المحددة قيمة المتغير selected
وبعدها سينفذ تلقائيا حدث selection_changed

هذا رابط المصدر ولو انه مرتبط ب SortableBindingList
http://stackoverflow.com/questions/48195...pplication

شكرا
الرد }}}
تم الشكر بواسطة:
#4
هذا موضوع قديم موجود في المنتدى ولكن لم استطيع تطبيقه على مشروعي
من خلال الكود المذكور علما انه الكود الذي استخدمه في البحث هو
كود :
   Private Sub TextBox9_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox9.TextChanged
       Dim ba As New BindingSource
       ba.DataSource = DataGridView1.DataSource
       ba.Filter = DataGridView1.Columns("الموضوع").DataPropertyName & " like '%" & TextBox9.Text & "%'"
       DataGridView1.DataSource = ba
   End Sub

و الكود المستخدم في التحديد هو
كود :
   Private Sub DataGridView1_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGridView1.SelectionChanged
       Dim te As String = BindingContext(dt).Position
       TextBox1.Text = dt.Rows(te).Item("التاريخ")
       TextBox2.Text = dt.Rows(te).Item("الجهة المرسلة")
       TextBox3.Text = dt.Rows(te).Item("الجهة المستلمة")
       TextBox4.Text = dt.Rows(te).Item("رقم الكتاب")
       TextBox5.Text = dt.Rows(te).Item("تاريخ الكتاب")
       TextBox6.Text = dt.Rows(te).Item("الموضوع")
       TextBox7.Text = dt.Rows(te).Item("الملاحظات")
       TextBox8.Text = dt.Rows(te).Item("تسلسل الاضبارة")
   End Sub
الرد }}}
تم الشكر بواسطة: سعود
#5
كود :
Dim te As String = BindingContext(dt).Position
الـPosition رقمي وليس نصي عرفه كـ Integer وليس String.
الرد }}}
تم الشكر بواسطة: رسول555 , رسول555
#6
شكرا لك اخي لكن هل من الممكن التعديل على الكودات المذكورة
مع الشكر الجزيل
الرد }}}
تم الشكر بواسطة:
#7
(29-04-18, 03:20 PM)رسول555 كتب : شكرا لك اخي لكن هل من الممكن التعديل على الكودات المذكورة
مع الشكر الجزيل

العفو ... لكن حسب الكود لم ار خطا سوى ما كتبته بمشاركتي  السابقة.

ملاحظة! 
            اذا ربطت كل الادوات بمصدر واحد لن تحتاج لاكواد الاسناد الموجودة بالكود.
الرد }}}
تم الشكر بواسطة: رسول555
#8
لم تحل المشكلة عندما اقوم بالتصفية يتوقف خاصية selection change
الرد }}}
تم الشكر بواسطة:
#9
(30-04-18, 01:55 AM)رسول555 كتب : لم تحل المشكلة عندما اقوم بالتصفية يتوقف خاصية selection change
 ؟؟؟؟؟؟؟؟؟؟؟؟؟؟
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مشكلة فى جمع عمود فى داتا جريد فيو احمد خطاب 3 152 06-03-24, 07:49 PM
آخر رد: احمد خطاب
  حذف الاسطر الفارغه من الداتا جريد فيو اليوم السابع 3 2,357 03-03-24, 12:57 AM
آخر رد: مصمم هاوي
  كيفية جمع أرقام عمود فى الداتا جريد فيو بناءاً على بيانات معينة heem1986 5 222 25-02-24, 11:26 PM
آخر رد: heem1986
  [C#.NET] طباعة بيانات داتا جرد فيو h2551996 0 83 25-02-24, 02:31 PM
آخر رد: h2551996
  كيفية تنفيذ امر عند التعليم على checkbox بالداتا جريد فيو heem1986 2 158 21-02-24, 01:37 AM
آخر رد: heem1986
  [VB.NET] ستايل داتا جرد فيو h2551996 10 343 17-01-24, 02:52 PM
آخر رد: aljzazy
Heart [C#.NET] حول بطئ عملية نقل البينات الكثيرة من أكسس إلى داتا غريد فيو بلال بلال 11 710 15-12-23, 07:47 AM
آخر رد: foad8920
  انتقال المؤشر بين الخلايا في نفس الصف في الداتا جريد فيو fares_mohammed 2 462 03-11-23, 09:57 PM
آخر رد: fares_mohammed
  يوجد مشكلة عند تحميل البيانات فى كمبوبوكس داخل داتا جريد new_programer 2 473 17-10-23, 06:51 PM
آخر رد: new_programer
  [VB.NET] مشكلة في داتا جرد فيو h2551996 4 404 13-09-23, 01:26 PM
آخر رد: h2551996

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


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