تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] ترتيب القيم تصاعديا ضمن الليست فيو ؟
#1
بسم الله الرحمن الرحيم
السلام عليكم

كيف لي ان اقوم بترتيب القيم التي بداخل الليست فيو، بشكل تصاعدي

قمت بجعل الخاصية المتعلقة ب
sorting= accending

ولكن لم الحظ اي تأثير لتلك الخاصية على القيم التي بالليست فيو
علما ان الكود الدي تم تعبئة الليست فيو به
كود :
Sub PopulateListView()

        With ListView1
            .Clear()
            .View = View.Details
            .Columns.Add("Area_id", 0, HorizontalAlignment.Center)
            .Columns.Add("اســـم المنطقـــة", 390, HorizontalAlignment.Left)

            .GridLines = False
            .FullRowSelect = True
            .Cursor = Cursors.Hand
            .BackColor = System.Drawing.ColorTranslator.FromHtml(My_back_Color_Listview)
            .ForeColor = Color.Black


            Dim Lst As New ListViewItem
            Dim List = From B In db.Fixed_Areas Select B

            For Each x In List

                Lst = New ListViewItem(x.Area_id)
                Lst.SubItems.Add(x.Area)
                .Items.Add(Lst)
            Next
        End With

    End Sub

ارجو المساعدة
والف شكر


الملفات المرفقة صورة/صور
       
الرد }}}
تم الشكر بواسطة:
#2
السلام عليكم ورحمة الله وبركاته

تفضل أخي ضعه في آخر كود تعبئة الليست فيو

كود :
ListView1.Sort()
الرد }}}
تم الشكر بواسطة: @@أبورائد@@
#3
شكرا اخي
sooriaty

على اجابتك

ولكن للاسف لم تتم عملية الفرز


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة:
#4
السلام عليكم ورحمة الله وبركاته

عفوا أخي بس السطر لازم تكتبه في آخر سطر في Sub مش في البداية
الرد }}}
تم الشكر بواسطة: @@أبورائد@@
#5
شكرا اخي
sooriaty
على تواصلك

تم وضع السطر المذكور في اخر سطر

ولكن دون جدوى


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة: @@أبورائد@@
#6
السلام عليكم
بعد صبر وبحث ..........وفقت والحمد لله على ايحاد حل لفرز القيم
بعد ان تم قراءة شرح مفصل عن الاداة Listview
في منتدى الفريق العربي للبرمجة للاخ Sniper

يتم عن طريق كتابة
كود :
Sub PopulateListView()

        With ListView1
            .Clear()
            .View = View.Details
            .Columns.Add("Area_id", 0, HorizontalAlignment.Center)
            .Columns.Add("اســـم المنطقـــة", 372, HorizontalAlignment.Left)

            .GridLines = False
            .FullRowSelect = True
            .Cursor = Cursors.Hand
            .BackColor = System.Drawing.ColorTranslator.FromHtml(My_back_Color_Listview)
            .ForeColor = Color.Black

            Dim Lst As New ListViewItem
            Dim List = From B In db.Fixed_Areas Select B
            For Each x In List
                Lst = New ListViewItem(x.Area_id)
                Lst.SubItems.Add(x.Area)
                .Items.Add(Lst)
            Next
        End With

        ListView1.Sorting = SortOrder.Ascending
        ListView1.ListViewItemSorter = New ListViewItemComparer(1)
        ListView1.Sort()

    End Sub

ويتم انشاء كلاس، يتم وضع فيه
كود :
Public Class ListViewItemComparer
    Implements IComparer
    Private col As Integer

    Public Sub New()
        col = 0
    End Sub

    Public Sub New(ByVal column As Integer)
        col = column
    End Sub

    Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare
        Return [String].Compare(CType(x, ListViewItem).SubItems(col).Text, CType(y, ListViewItem).SubItems(col).Text)
    End Function

End Class


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة: sooriaty03 , @@أبورائد@@
#7
السلام عليكم ورحمة الله وبركاته

بامكانك وضع هذا الكود لترتيب أي عمود تختاره بالنقر على عنوانه مع تحديد نوع الفرز تصاعدي أم تنازلي بشكل اختياري
كود :
Public Class Form1

    Private Sub ListView1_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles ListView1.ColumnClick
        ListView1.ListViewItemSorter = New ListViewItemComparer(e.Column, SortOrder.Descending)
    End Sub

End Class

Public Class ListViewItemComparer
    Implements IComparer
    Private col As Integer
    Private ord As SortOrder

    Public Sub New()
        col = 0
    End Sub

    Public Sub New(ByVal column As Integer, Optional ByVal order As SortOrder = SortOrder.Ascending)
        col = column
        ord = order
    End Sub

    Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare
        If ord = SortOrder.Ascending Then
            Return String.Compare(CType(x, ListViewItem).SubItems(col).Text, CType(y, ListViewItem).SubItems(col).Text)
        Else
            Return String.Compare(CType(y, ListViewItem).SubItems(col).Text, CType(x, ListViewItem).SubItems(col).Text)
        End If
    End Function

End Class

السلام عليكم ورحمة الله وبركاته




السلام عليكم ورحمة الله وبركاته

وهذه طريقة أخرى لو أردت عند كل ضغطة على عنوان العمود يبدل بين التصاعدي والتنازلي (شبيه بـ DataGridView)
كود :
Public Class Form1

    Private Sub ListView1_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles ListView1.ColumnClick
        If Val(ListView1.Columns(e.Column).Tag) = 0 Then
            ListView1.ListViewItemSorter = New ListViewItemComparer(e.Column, SortOrder.Ascending)
            ListView1.Columns(e.Column).Tag = 1
        Else
            ListView1.ListViewItemSorter = New ListViewItemComparer(e.Column, SortOrder.Descending)
            ListView1.Columns(e.Column).Tag = 0
        End If
    End Sub

End Class

Public Class ListViewItemComparer
    Implements IComparer
    Private col As Integer
    Private ord As SortOrder

    Public Sub New()
        col = 0
    End Sub

    Public Sub New(ByVal column As Integer, Optional ByVal order As SortOrder = SortOrder.Ascending)
        col = column
        ord = order
    End Sub

    Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare
        Select Case ord
            Case SortOrder.Ascending
                Return String.Compare(CType(x, ListViewItem).SubItems(col).Text, CType(y, ListViewItem).SubItems(col).Text)
                CType(x, ListViewItem).Tag = 1
            Case SortOrder.Descending
                Return String.Compare(CType(y, ListViewItem).SubItems(col).Text, CType(x, ListViewItem).SubItems(col).Text)
                CType(x, ListViewItem).Tag = 0
            Case SortOrder.None
                If Val(CType(x, ListViewItem).Tag) = 0 Then
                    Return String.Compare(CType(x, ListViewItem).SubItems(col).Text, CType(y, ListViewItem).SubItems(col).Text)
                    CType(x, ListViewItem).Tag = 1
                Else
                    Return String.Compare(CType(y, ListViewItem).SubItems(col).Text, CType(x, ListViewItem).SubItems(col).Text)
                    CType(x, ListViewItem).Tag = 0
                End If
        End Select
    End Function
End Class

السلام عليكم ورحمة الله وبركاته
الرد }}}
تم الشكر بواسطة: sooriaty03 , hoob computer


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ترتيب Crystal Report Sort waataanys 1 271 05-01-24, 12:40 AM
آخر رد: HALIM ELEULMA
  [VB.NET] مساعدة فى ترتيب نتائج الاستعلام ZEEN4ZEEN 1 362 08-11-23, 01:34 AM
آخر رد: الحزين اليماني
Heart [سؤال] ♥ إعادة ترتيب صفوف DataGridView ♥ أبو خالد الشكري 2 304 24-09-23, 08:50 AM
آخر رد: أبو خالد الشكري
Rainbow مشكلة تكرار القيم في الكريستال ريبورت devpos 1 330 07-09-23, 11:48 PM
آخر رد: Asem2
  مشكلة ترتيب وفرز الأرقام في الداتاقريدفيو صالح عبدالله 4 614 13-05-23, 12:29 PM
آخر رد: صالح عبدالله
  ترتيب الملفات Osama NY 1 252 25-04-23, 08:13 PM
آخر رد: aljzazy
  [VB.NET] ترتيب تصاعدى AMAZ1972AMAZ 4 473 11-04-23, 11:19 AM
آخر رد: AMAZ1972AMAZ
  [سؤال] تعبئة الليست بوكس من ال resources ابو روضة 6 666 22-12-22, 01:18 AM
آخر رد: ابو روضة
  [سؤال] كيفية حفظ عناصر في مجلد بحسب ترتيبها في الليست بوكس asmarsou 1 625 13-07-22, 06:42 PM
آخر رد: ابراهيم ايبو
  ترتيب العرض الشراء الاول ثم السداد في حالة تساوي التاريخ atefkhalf2004 2 760 26-05-22, 10:07 PM
آخر رد: atefkhalf2004

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


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