दृश्य स्टूडियो काम नहीं करता है 2010 VB.NETDataGridView क्रमबद्ध
मैं एक DataGridView.DataSource कस्टम वस्तुओं का संग्रह करने के लिए सेट है। कॉलम प्रदर्शन के लिए कस्टम ऑब्जेक्ट से केवल गुणों को पढ़ते हैं, यह संवाद केवल प्रदर्शन के लिए है। गुण सभी स्ट्रिंग ऑब्जेक्ट्स लौटते हैं। मैंने स्वचालित रूप से सॉर्टमोड करने के लिए कॉलम को सेट किया है, लेकिन उनमें से 2 को सेट किया गया है (जो सेट नहीं हैं बटन या चेकबॉक्स है)। फिर भी यह सॉर्ट नहीं करता है। मैंने चारों ओर गुगल किया है और ज्यादातर लोग एसक्यूएल या बाध्यकारी स्रोतों का उपयोग करते हैं लेकिन मैं एक छोटा वीबी संग्रह का उपयोग कर रहा हूं। कुछ कहते हैं कि मुझे IComparable लागू करना चाहिए, लेकिन स्ट्रिंग पहले से ही असंभव नहीं है?
किसी भी मदद की सराहना की जाएगी?
Thanx
Bodger
एक अनुरोध के अनुसार यहाँ कुछ कोड के टुकड़े कर रहे हैं।
यह विधि कॉलम को डिज़ाइनर में डिज़ाइन किए गए कॉलम से विस्तार से परिभाषित करती है।
कॉलम नामों को pSelected या pCustomer कहा जाता है और कॉलम परिभाषा के संबंध में उसी नाम से संपत्ति के साथ मेल खाता है।
Protected Sub UpdateDGVUS()
If Not USColumnsInitted Then
USColumnsInitted = True
dgvUS.AutoGenerateColumns = False
dgvUS.Columns.Clear()
Dim iIdx As Integer
iIdx = 0
dgvUS.Columns.Insert(iIdx, Me.pSelected)
dgvUS.Columns("pSelected").DisplayIndex = iIdx
dgvUS.Columns("pSelected").SortMode = DataGridViewColumnSortMode.Automatic
iIdx = iIdx + 1
dgvUS.Columns.Insert(iIdx, Me.pCustomer)
dgvUS.Columns("pCustomer").DisplayIndex = iIdx
dgvUS.Columns("pCustomer").SortMode = DataGridViewColumnSortMode.Automatic
iIdx = iIdx + 1
dgvUS.Columns.Insert(iIdx, Me.pDetails)
dgvUS.Columns("pDetails").DisplayIndex = iIdx
dgvUS.Columns("pDetails").SortMode = DataGridViewColumnSortMode.Automatic
iIdx = iIdx + 1
dgvUS.Columns.Insert(iIdx, Me.pSelectCustomerInvoice)
dgvUS.Columns("pSelectCustomerInvoice").DisplayIndex = iIdx
iIdx = iIdx + 1
dgvUS.Columns.Insert(iIdx, Me.pDate)
dgvUS.Columns("pDate").DisplayIndex = iIdx
dgvUS.Columns("pDate").SortMode = DataGridViewColumnSortMode.Automatic
iIdx = iIdx + 1
dgvUS.Columns.Insert(iIdx, Me.pAmount)
dgvUS.Columns("pAmount").DisplayIndex = iIdx
dgvUS.Columns("pAmount").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgvUS.Columns("pAmount").SortMode = DataGridViewColumnSortMode.Automatic
iIdx = iIdx + 1
dgvUS.Columns.Insert(iIdx, Me.pName)
dgvUS.Columns("pName").DisplayIndex = iIdx
dgvUS.Columns("pName").SortMode = DataGridViewColumnSortMode.Automatic
iIdx = iIdx + 1
dgvUS.Columns.Insert(iIdx, Me.pPayment)
dgvUS.Columns("pPayment").DisplayIndex = iIdx
dgvUS.Columns("pPayment").SortMode = DataGridViewColumnSortMode.Automatic
iIdx = iIdx + 1
dgvUS.Columns.Insert(iIdx, Me.pCompany)
dgvUS.Columns("pCompany").DisplayIndex = iIdx
dgvUS.Columns("pCompany").SortMode = DataGridViewColumnSortMode.Automatic
iIdx = iIdx + 1
dgvUS.Columns.Insert(iIdx, Me.pType)
dgvUS.Columns("pType").DisplayIndex = iIdx
dgvUS.Columns("pType").SortMode = DataGridViewColumnSortMode.Automatic
iIdx = iIdx + 1
dgvUS.Columns.Insert(iIdx, Me.pDescription)
dgvUS.Columns("pDescription").DisplayIndex = iIdx
dgvUS.Columns("pDescription").SortMode = DataGridViewColumnSortMode.Automatic
iIdx = iIdx + 1
dataUpdatedUS()
End If
End Sub
इस संग्रह
Public Class ItemXact01
Public Property FirstName As String
Public Property LastName As String
Public Property Company As String
Public Property Type As String
Public Property Description As String
Public Property RefNumber As String
Public Property DownloadID As String
Public Property Selected As Boolean
Public Property RequestID As Integer
...
Public ReadOnly Property pCompany As String
Get
pCompany = Company
End Get
End Property
Public ReadOnly Property pType As String
Get
pType = Type
End Get
End Property
Public ReadOnly Property pDescription As String
Get
pDescription = Description
End Get
End Property
Public ReadOnly Property pSelected As Boolean
Get
pSelected = Selected
End Get
End Property
में है कि कस्टम वस्तु का एक टुकड़ा है ...
डेटा इस कोड
Private Sub dataUpdateDGV(ByRef dgv As DataGridView, ByRef myCollection As Collection)
myMain.Log("dataUpdatedDGV: 001 :" & dgv.RowCount & ":" & myCollection.Count & ":")
' for some reason the not equal to does not show in the next line
If dgv.RowCount myCollection.Count Then
myMain.Log("dataUpdatedDGV: 002")
dgv.DataSource = Nothing
If myCollection.Count > 0 Then
myMain.Log("dataUpdatedDGV: 003")
dgv.DataSource = myCollection
End If
End If
myMain.Log("dataUpdatedDGV: 004")
dgv.Invalidate()
dgv.Update()
dgv.Refresh()
myMain.Log("dataUpdatedDGV: OUT")
End Sub
क्या आप 'डेटाग्रिड व्यू' को परिभाषित करने के लिए उपयोग किए जाने वाले कोड को पोस्ट कर सकते हैं। – ChrisF
मैं संवाद के लिए डिजाइनर का उपयोग करता हूं। इसमें डेटा टैब्रिडव्यू वाले कुछ टैब वाले टैब नियंत्रक हैं। यहां मैं कुछ स्निपेट्स रख सकता हूं जो मुझे लगता है: – Bodger