How To Sort Multiple Column Of A List
Apr 15, 2009I have a class for example:
Public Class Employee
Private mName As String
Private mSalary As Double
[Code].....
I have a class for example:
Public Class Employee
Private mName As String
Private mSalary As Double
[Code].....
I have a table with two columns, date and time. I am using the following code to sort in descending date order.
VB
If historydataGrid.Rows.Count > 0 Then
'if there are rows, sort by date (most recent first)
historydataGrid.Sort(historydataGrid.Columns(0), System.ComponentModel.ListSortDirection.Descending)
End If
Where Columns(0) is the Date. However, how difficult is it for me to then sort secondarily by time. So that the grid will sort by most recent date and time.. Working down from the most recent time on the most recent date, and then moving backwards towards the oldest date with the oldest time.
I'm using a Listview in VirtualMode, so I can 'add' a lot of files almost instantly. A Listview in VirtualMode does not allow sorting, so I need to sort the data myself. The data is stored as a List of Structure (it's faster to load than a List of ListViewItem). The code below works fine, but I need to sort based on multiple variables in the Structure. Code:
View 2 RepliesI have a MyObject; myObjects as List(Of MyObject) and a delegate Comparison(Of MyObject) that uses a lot of comparison functions (ByA, ByB, ByC etc) Ã la:
Shared Function CompareMyObjectsByName(x As MyObject, y As MyObject) As Integer
Return x.Name.CompareTo(y.Name)
End Function
[Code].....
It seems that on clicking datagridview column header, the column will be automatically sorted based on the column type. I have a column showing some numbers. If column type is string, it sorts "1","20","3" into "1","20","3". If column type is double, it sorts into "1","3","20" which is the result that I want. However, there might be some erros in the numbers and error messages(text) will show in the cell instead of numbers. So I cannot set the column type as double. I want to ignore these error messages and sort all the numbers. How can I do this?
Also, I need to add some background colors to different rows in datagridview. So in the column header click event, I call the bkgColor Sub to achieve this. My question is that how can I override the sorting method in this event?
Private Sub DataGridView1_ColumnHeaderMouseClick(sender As Object, e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.ColumnHeaderMouseClick
Try
[code]....
I have a List(Of T) storing a list of Custom classes called Advertisement. Each advertisement contains 3 properties, Year, Make and Model. I need to sort the list By Year, then by Make and then by Model. I have a property in the Advertisement class called Vehicle which returns a formatted string with the Year Make Model like 2007 Toyota Tacoma and ive been sorting on that but its not working how I thought it would. Basically I want to sort the list by Year (decending; lowest year first) then sort by the Make and Model (in alphabetical order) Is that even possible? Here is the code ive been using.
[Code]...
I'm having a bit of a 'brain doner' moment here
I have a list of Objects. Each of these Objects contains a list of other Objects (pseudo code) :-
Private Structure Object1
dim Name as string
dim ListOfObject2 as List(Of Object2)
[Code]....
I need to sort the list of Object1 by the Value in Object2. I have a comparison class which sorts Object2 by its Value nicely.
What would be the fastest way to sort a list that contains a list of objects, based upon another list? An example follows:Say I have multiple lists of employees. Each individual list has a common property value, say "Department". So I have a list of employees, in one list they all have the department string value of "Sales". In another list all the objects have a department value of "Finance". These lists of employees are then contained in a list which holds them all.
I have a second list, which should drives the sort order of the employee lists. The second list simply contains a list of strings like, "Finance", "Sales", "IT" and so on. I'd like my lists of customers to be sorted in the order of "Finance", "Sales", etc.I'm using VB.NET in .NET 2.0
I am reading an Excel file into VB.NET. There are 4 columns containing dollar figures of varying amounts. Here is what I need to do is identify the columns with the highest $ figure, the next highest, etc. and mark them so that .NET can identify them (e.g. col3 is highest so rank1 variable is "col3" and so on).So I am dealing with Excel Ojects which is new to me and sorting which is new to me. If it helps, here is how I am reading in the Excel file:
xlsWorkBook = xlsApp.Workbooks.Open(folders(f).ToString & "" & fileInFolder.ToString)
xlsWorkSheet = xlsWorkBook.Worksheets("Sheet1")
Dim ColumnNumber As Integer = xlsWorkSheet.Cells(1, StartColumn).Column
[code].....
In my form I have several datagrids.
View 2 Repliesis this possible To loop through the column one entrys and then rearrange by there values?
example all column one is date entrys
12-11-08
12-07-08
and so on and reshuffle the listview?
I have coded my program so that when a user clicks on a column, the data is sorted in ascending/descending order.When I go to click on a column header, however, nothing actually happens.I dont get an error or anything.Here is the code that I am using to sort the records in the GridView:
Property GridViewSortDirection() As SortDirection
Get
If IsNothing(ViewState.Item("GridViewSortDirection")) Then
Return SortDirection.Descending
[code]....
I am trying to display a football league table in datagridview. my code gets that data for each column from ms access and displays it in datagridview. I want to sort rows according to the value of the "pts" column.I've tried using using BindingSource.Sort = "pts" but this has had no effect.
[Code]...
Is it possible, out of the box, to sort a .NET DataGridView column using only the keyboard?I understand there is a SelectionMode property, but changing this merely allows me to select, using Shift+Space, an entire row or column, but this doesn't have the same effect as clicking the header with the mouse and causing a sort.The reason I ask is because I am working on accessibility issues and would like to avoid relying on the mouse.
View 3 RepliesDim array1(9,2) as String
So basically, 10 rows and 3 columns and say I want to sort them by the values in the 3rd column.
Each row is essentially a record of data and must be kept together.
Now I know that you can't use the array.sort method but would I have to use a bubble sort or something for this?
What's a good way to manipulate the records while still keeping each row linked together somehow.
I'm trying to put the names of all my column's (that are in my datagridview) in order by their displayIndex property in an arraylist.
View 2 RepliesI have a range in excel and I want to be able to sort it by one column programmatically.
There is range.sort, but it has a ridiculous about of parameters and I cannot get it to work.
Surely there must be something to be able say I want this data to be sorted by this column?
I want create a datatable .In this datatable 2 coloums are percentage and marks .I want to show the maximum percentage record display on first and simultaneosly another racord ?Thats why i take a dataview but dataview could not sort the datatable exam.
Dim view As DataView = dt.DefaultView
view.Sort = "clm_percentage DESC"
dgvStudInfo.DataSource = view
I got a gridview which auto generates columns. One of the columns is a date field.Somehow, i cant sort the date field. It's being interpreted as a string.The data comes out a database. The datatype there is set on datetime.his is the code in the aspx file:
<asp:BoundField DataField="date" HeaderText="date" SortExpression="date" DataFormatString="{0:dd/MM/yyyy}" HtmlEncode="false"/>
[code].....
I have lines like this
( Pin ) [ Probe ] Length = in.
| From | To | From | To
Length|Ga|Color |(b r c )|(b r c )| X Y | X Y
[code].....
I want to just sort one column in a listview control. Is this possible or are all the columns tied together?
View 2 RepliesAdd persistence to multible DataGridView in terms of Hide/Show column and column width
View 1 RepliesI support a .Net 2.0 Windows application that has a custom listview control to allow for greater flexibility. I am not allowed to bring this to a newer version of the gramework until next year. We are moving from XP to Windows 7, and we have identified an issue with how the column sort image (up/down arrow) is drawn to the listview. Currently in XP, the image is drawn to the right of the column's text. However, in Windows 7, I am getting Access Violation Exceptions. Now, I know that the error is with the improper handling of memory using the unmanaged code as shown below. I am looking for a method to mimic what we have below in a safe manner using managed code.
[Code]...
i have a GridView bound to a DataView. Some columns in the DataView's table are foreignkeys to related tables(f.e. Customer). I want to enable sorting for these columns too, but all i can do is sorting the foreignkey(fiCustomer) and not the CustomerName.
I have tried this without success(" Cannot find column ERP_Customer.CustomerName "):
<asp:TemplateField HeaderText="Customer" SortExpression="ERP_Customer.CustomerName" >
A tried also the DataViewManager, but i've a problem to detect the table to sort:
Dim daCharge As New ERPModel.dsERPTableAdapters.ERP_ChargeTableAdapter
daCharge.Fill(dsERP.ERP_Charge)
Dim viewManager As New DataViewManager(Me.dsERP)
[Code].....
I created a DataGrid by dropping a DataSource on my Form. When I run it in debug, it works great.
My question is:
When I click on a column to sort by, ascending or descending, how can I tell which column was clicked on, and whether it is ascending or descending?
how we can sort a listview by a column without click event?
View 1 RepliesI have text file whic look like this[code]...
I want to swape the lines based on second and third column.. I must first swape based on second column in decending order wher the big number will come first. Like here the lines with number 30 will come first followed by 28 and so on. Then i must swape the colors. Like all the Black will come first follow by[code]...
I need to sort a datatable. I do it with linq this an example
Dim query = From c In dt.AsEnumerable _
Order By c.Field(Of DateTime?)("LastPurchaseDate"), _
c.Field(Of String)("LastName") Descending
Dim dv As DataView = query.AsDataView
But my problem is that i need to sort the fields not by passing the name of the column but the index of that.
I have a Listview with two columns. The second column contain strings and I want to sort the listview rows by the string length of the second column.
[Code]...
The problem is that I can only find examples of sorting in alphabetic order (with IComparer). Does anybody have an example?
I have use this code to view my database into my datagird
Dim dbPath As String = "Provider=Microsoft.Jet.Oledb.4.0; Data Source=../VG.mdb;Persist Security Info=False"
Dim dt As New DataTable
Dim ds As New DataSet
Dim da As New OleDbDataAdapter
da = New OleDbDataAdapter("Select * from Marriage", dbPath)
ds.Tables.Add(dt)
da.Fill(dt)
Now every time I visit that form I have to manually click the column header of "EventDate" to that it will sort Descending. Is there a way to automatically sort it every time I visit this form?