تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
اذا احد ما له خبرة مع الـ List
#1
السلام عليكم

حقيقة هذه اول مرة اجد نفسي انغمس في الـ List واجربها ولكن واجهتني مشكلة في البحث والانتقال الى سطر محدد 

معي فئة بهذا الشكل .

PHP كود :
Public Class MailMessageList
    Inherits 
List(Of MailMessage)
 
   Public Sub New()
 
       InitializeList()
 
   End Sub
    Private Sub InitializeList
()
 
       '.pic = Form1.PictureBox1.Image,
        AddRange(New MailMessage() {
            New MailMessage() With {
                .MsgDate = DateTime.Today,
                .Subject = "RE: Web Design Tip: How-To Add jQuery Yellow Fade Effect to ASP.NET GridView", .Sender = "رئيس قسم المحفوظات",
                .Text = "محمد خليل سالم",
        .IsRead = False
            },
            New MailMessage() With {
                .MsgDate = DateTime.Today.AddDays(-1),
                .Subject = "RE: Multitasking (Message from the CTO, newsletter 49)",
                .Sender = "Pietro Allegretti", .Text = "Let me thank you Julian. You make me discover Pomodoro Technique...",
        .IsRead = False
            },
            New MailMessage() With {
                .MsgDate = DateTime.Today.AddDays(-2),
                .Subject = "Advanced CodeRush Plug-ins: Converting an Object Initializer into a Constructor",
                .Sender = "Mark Miller (DevExpress)", .Text = "Today Rory Backer and I presented an Advanced CodeRush Plug-ins session, showing how to cr",
        .IsRead = True
            },
 })
    End Sub
End Class 

وهي تقوم على وراثة الفئة التالية

PHP كود :
Public Class MailMessage
    
    Sub 
New()
 
       ' TODO: Complete member initialization 
    End Sub

    Public Property IsRead() As Boolean
    Public Property MsgDate() As DateTime
    Public Property Subject() As String
    Public Property Sender() As String
    Public Property Text() As String
    Public Property pic() As Image
End Class 

لاظهار البيانات

PHP كود :
Dim bin As List(Of MailMessage) = New MailMessageList()

 Me.gridControl1.DataSource bin 

يتم عرض البيانات في الاداة Gride ولكن عندما حاولت البحث عن قيمة والانتقال الى الصف المحدد لم تفلح المحاولات .

من سبق له التعامل مع هذه الخلطة الغريبة .


الرد }}}
تم الشكر بواسطة:
#2
ارفق مشروع مصغر حتى اقوم بتجربة الاكواد التى تناسب فى ذلك
حتى اتمكن من تحديد كود البحث هيكون من خلال gridControl فقط
ولا ستحتاج الى تعديل الاكوادالاخرى ليسهل هذا الامر

وان انا اقول بدون علم لا يفيدك فى شئ بالنهاية
فى انتظار ردك بارفاق مشروع مصغر

تحياتى لك
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: viv
#3
هل معك مكونات Devexpress اذا كانت معك فهنا يمكنك ان تشغل نفس المثال
فالمشروع مدمج مع الفيجول ستوديو



الرد }}}
تم الشكر بواسطة:
#4
اذا كنت تريد عمل فلتر 
يمكنك عمل ذلك من خلال الليست 
مثال 

كود :
       For Each msg As MailMessage In bin
           If msg.IsRead Then
               '
           Else
               '
           End If
       Next


اما اذا كنت تريد تحديد صف معين فى الجريد كونترول فيجب عليك المرور على الصفوف لتحديد ما اذا كان يطابق ما تريد ام لا

للاسف انا لا استخدم أدوات Devexpress
لكن جرب هذا الكود ربما يفيدك


كود :
Private Function GetRowHandleByColumnValue(ByVal view As GridView, ByVal ColumnFieldName As String, ByVal value As Object) As Integer
 Dim result As Integer = GridControl.InvalidRowHandle
 Dim i As Integer
 For i = 0 To view.RowCount - 1
   If view.GetDataRow(i)(ColumnFieldName).Equals(value) Then
     Return i
   End If
 Next
 Return result
End Function

Private Sub GridViewAuthorization_ValidateRow(sender As Object, _
e As DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs) Handles _
       GridView1.ValidateRow
       Dim view As GridView = TryCast(sender, GridView)

Dim mcolMenuID As GridColumn = view.Columns(0)
Dim getcolMenuID As String = Convert.ToString(view.GetRowCellValue(e.RowHandle, mcolMenuID))
Dim rowHandle As Integer = GetRowHandleByColumnValue(GridViewMenu, "ID", view.GetRowCellValue(e.RowHandle, mcolMenuID))
               If rowHandle <> GridControl.InvalidRowHandle Then
                   view.FocusedColumn = view.Columns.ColumnByFieldName("ID")
                   view.FocusedRowHandle = rowHandle
                   view.ShowEditor()
                   obj.getMsgBox("5004", "", "", MsgBoxStyle.Information)
                   e.Valid = False
               End If
End Sub
الرد }}}
تم الشكر بواسطة: elgokr , viv
#5
وعليكم السلام 

هذة طريقة إعتماد الـ List أو الـ Collection كمصدر للبيانات

   

   

   

   

   

   

   


.rar   MailMessageList.rar (الحجم : 63.76 ك ب / التحميلات : 33)




أنا لو مكانك أحول الـ List إلى Datatable وأربطها عادي بالـ DataGrigView
الرد }}}
تم الشكر بواسطة: sendbad100 , viv , عبد العزيز البسكري , elgokr
#6
شكرا جزيلا ، جاري مراجعة هذه المعلومات
الرد }}}
تم الشكر بواسطة:
#7
صاحب الحلول الدائماً الاخ عبدالله الدوسري
ما قصر فى التوضيح والشرح

تحياتى له ولك
تمنياتى لكم التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: عبدالله الدوسري , viv
#8
والله كما قلت اخي الدوسي ، تحويلها الى DataTable  وبلا وجع دماغ
الرد }}}
تم الشكر بواسطة:
#9
ااضافة بسيطة
جابة كل اسئلتك تكمن في المواضيع التالية:

الجزء الأول
الجزء الثاني

الفكرة

اما انك تقوم بتحويل list الي Datatable مباشرة و هذا ستجده في الجزء الأول
أو تبني Colleection الخاصة بك بنفسك و هذا ما يتحدث عنه الجزء الثاني
Retired
الرد }}}
تم الشكر بواسطة: elgokr , sendbad100 , viv
#10
شكرا أخ سيلفر جاري الاطلاع
الرد }}}
تم الشكر بواسطة:



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


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