تقييم الموضوع :
  • 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
 ؟؟؟؟؟؟؟؟؟؟؟؟؟؟
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] مساعدة في إضافة row في جريد فيو Codack 1 51 , 02:27 PM
آخر رد: اسامه الهرماوي
  سؤال بالداتا جريد فيو اليوم السابع 3 132 07-09-20, 01:34 AM
آخر رد: اليوم السابع
  فلتر للداتا جريد فيو ahmedramzyaish 11 477 05-09-20, 02:40 PM
آخر رد: Anas Mahmoud
  [VB.NET] محتاج كود عرض اكثر من جدول فى داتا جرد فيو واحدة عن طريق اختيار الجدول من كومبوكس mohammed1994 1 180 01-09-20, 04:56 PM
آخر رد: اسامه الهرماوي
  [VB.NET] داتا غريد فيو Hamza Elshare 1 126 01-09-20, 04:53 PM
آخر رد: اسامه الهرماوي
  طريقه تحميع كميات صنف معين فى الداتا جريد فيو بباركود الصنف خالد كامل1 1 171 31-08-20, 10:23 AM
آخر رد: Anas Mahmoud
  سؤال فى الداتا جريد فيو خالد كامل1 1 155 28-08-20, 08:42 AM
آخر رد: حريف برمجة
  طريفه اضافه ROW الى الداتا جريد فيو برمجيا بالكود خالد كامل1 9 468 21-08-20, 02:05 AM
آخر رد: خالد كامل1
  اريد استرجاع شئ فى الداتا جريد فيو خالد كامل1 2 209 14-08-20, 08:54 PM
آخر رد: خالد كامل1
  الى خبراء الدوت نت (داتا جريد فيو) التنقل التلقائي في خلايا الداتا جريد ismaeel 0 202 10-08-20, 03:38 PM
آخر رد: ismaeel

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


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