تقييم الموضوع :
  • 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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كود افراغ الليست بوكس anes 1 55 07-12-17, 02:21 PM
آخر رد: طالب برمجة
  [سؤال] ظهور نتائح البحث داخل الليست بوكس ابو روضة 0 60 25-11-17, 01:47 AM
آخر رد: ابو روضة
  تجميع القيم للاصناف المتشابهة في مجموعة جداول khaled12345 2 68 19-11-17, 10:21 AM
آخر رد: khaled12345
  [كود] ترتيب الأسماء أبجدي لسه مبتدئ 2 142 14-09-17, 01:45 AM
آخر رد: لسه مبتدئ
  [VB.NET] ترتيب الوقت من 6 خانات dubai.eig 3 224 07-05-17, 01:22 AM
آخر رد: dubai.eig
  ترتيب 2 ليست بوكس حسب احدهما samira20 6 566 06-01-17, 06:40 PM
آخر رد: samira20
Music طلب : كود ترتيب مصفوفة ثنائية تصاعدياً + كود ضرب مصفوفة ثنائية سوسن جاد الله 2 666 27-11-16, 09:29 AM
آخر رد: amgad525
  ترتيب البيانات حسب تشابه الاسم في العمود هاوي1995 6 636 21-10-16, 09:30 PM
آخر رد: هاوي1995
  ترتيب النوع على أساس المفاتيح Mohamed20 6 413 20-10-16, 12:17 PM
آخر رد: Mohamed20
  ترتيب ريبورت فيور hglogtd 5 511 19-10-16, 08:54 AM
آخر رد: hglogtd

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


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