Если у вас есть
Public Class Card
Property ID As Integer
Property ItemID As Integer
Property BarcodeID As Integer
Property ItemTitle As String
Property BrandTitle As String
Property ItemImg As String
Property ItemPrice As Decimal
Property TotalItemPrice As Decimal
Property ItemQuantity As Integer
Property ItemQuantitySelected As Integer
End Class
Затем вы можете использовать List(Of Card)
для хранения данных. Это говорит о том, что компилятору известно, что он содержит в себе Card
вместо какого-то объекта.
Dim myCookies As HttpCookie = HttpContext.Current.Request.Cookies("Mycard")
Dim cards = New List(Of Card)
For i As Integer = 0 To varCookies.Values.Count-1
Dim allValues As String() = myCookies.Values(i).Split("|"c)
Dim item = New Card
item.ItemID = Integer.Parse(allValues(0))
item.ItemTitle = allValues(1).ToString
item.BrandTitle = allValues(2).ToString
item.ItemImg = allValues(3).ToString
item.ItemPrice = Decimal.Parse(allValues(4))
'item.ItemQuantity = Integer.Parse(allValues(5))
'item.ItemQuantitySelected = Integer.Parse(allValues(6))
item.BarcodeID = Integer.Parse(allValues(7))
item.TotalItemPrice = Decimal.Parse(allValues(8))
cards.Add(item)
Next
И теперь, когда компилятор может получить доступ к свойствам записей в списке, вы можете
Dim dataToPresent = cards.OrderBy(function(c) c.ItemId).ToList()
rptcart.DataSource = dataToPresent
rptcart.DataBind()
и он покажет данные в выбранном вами порядке.
Если вам нужно упорядочить по разным свойствам во время выполнения, поиск "linq dynamic orderby" должен дать вам полезный код.
Я заметил, что у вас есть Private TotalItemPrice As String
, который конфликтует с item.P_TotalItemPrice=Decimal.Parse(AllValues(8))
. Если вы используете Option Strict On
, Visual Studio укажет на подобные проблемы для вас.
P.S. У вас есть Dim myCookies
, но вы используете varCookies.Values.Count
. Вы можете проверить, что это правильно.