By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,039 Members | 1,824 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,039 IT Pros & Developers. It's quick & easy.

custom sorting of ListBox controls

P: n/a
Has anyone found some documentation on how to properly subclass a ListBox
control and provide custom sorting (when the list items come from a
DataSource)?

The only way I can figure out how to do this is by sorting an array of some
sort and then setting the DataSource. I don't like this because it fires
the DataSourceChanged event.

What I really want to do is get access to the underlying list items, sort
them, and then have the control refresh itself. I already have access to
the underlying list items since I have set the DataSource myself. But
changing the order of the items in the DataSource does not appear to result
in the items in the control being resorted.

Any suggestions?
Nov 22 '05 #1
Share this Question
Share on Google+
5 Replies


P: n/a
Cor
Hi,

Have a look at the dataview
Basicly it is not more thatn

I do not know if you use VB or C# so some things in VB
\\\
dim dv as new dataview(mydataset.tables(0))
dv.Sort = "myItem ASC"
listbox.datasource=dv
and the rest as you did it.
///

I hope this helps?

Cor
Nov 22 '05 #2

P: n/a
Marri,

There are two kinds of sorts going on here. The first is the Sort that
the ListBox class calls. Basically, in order to use that, you will have to
clear the collection and re-add the items in the order that you want them to
be sorted in.

The other kind is the sort order that the collection has when bounded to
a data set. You can change the order in the underlying list items, but that
doesn't matter. The reason is because when bound to a data table, you are
binding to the default view on the table. Change the sort order on the
view, and you should notice that the items in the list are listed separately
(you might have to rebind).

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Marri Suliez" <ma*@spam.com> wrote in message
news:Xn**********************************@24.168.1 28.86...
Has anyone found some documentation on how to properly subclass a ListBox
control and provide custom sorting (when the list items come from a
DataSource)?

The only way I can figure out how to do this is by sorting an array of some sort and then setting the DataSource. I don't like this because it fires
the DataSourceChanged event.

What I really want to do is get access to the underlying list items, sort
them, and then have the control refresh itself. I already have access to
the underlying list items since I have set the DataSource myself. But
changing the order of the items in the DataSource does not appear to result in the items in the control being resorted.

Any suggestions?

Nov 22 '05 #3

P: n/a
read this - might help you

http://www.dotnetbips.com/displayarticle.aspx?id=232

--
Regards

John Timney
Microsoft Regional Director
Microsoft MVP
----------------------------------------------------------------------------
------------------------------------
<blatant plug>
Professional .NET for Java Developers with C#- ISBN: 1-861007-91-4
Professional Windows Forms - ISBN: 1861005547
Professional JSP 2nd Edition - ISBN: 1861004958
Professional JSP - ISBN:
1861003625
Beginning JSP Web Development - ISBN: 1861002092
</blatant plug>
----------------------------------------------------------------------------
------------------------------------

"Marri Suliez" <ma*@spam.com> wrote in message
news:Xn**********************************@24.168.1 28.86...
Has anyone found some documentation on how to properly subclass a ListBox
control and provide custom sorting (when the list items come from a
DataSource)?

The only way I can figure out how to do this is by sorting an array of some sort and then setting the DataSource. I don't like this because it fires
the DataSourceChanged event.

What I really want to do is get access to the underlying list items, sort
them, and then have the control refresh itself. I already have access to
the underlying list items since I have set the DataSource myself. But
changing the order of the items in the DataSource does not appear to result in the items in the control being resorted.

Any suggestions?

Nov 22 '05 #4

P: n/a
Cor
Hi John,

Sorry, this I do not understand.

It is about a listbox the OP is talking about.

He told he knows about a datasource.

Why he needs to make an extra class for this while the dataview is full
suported in the framework.?

And the dataview is very easy to use.

But maybe there is a reason and than I gladly like to know that.

Cor
Nov 22 '05 #5

P: n/a
You can override the Sort method in a derived class to provide custom sorting.
--
Justin Rogers
DigiTec Web Consultants, LLC.
Blog: http://weblogs.asp.net/justin_rogers

"Marri Suliez" <ma*@spam.com> wrote in message
news:Xn**********************************@24.168.1 28.86...
Has anyone found some documentation on how to properly subclass a ListBox
control and provide custom sorting (when the list items come from a
DataSource)?

The only way I can figure out how to do this is by sorting an array of some
sort and then setting the DataSource. I don't like this because it fires
the DataSourceChanged event.

What I really want to do is get access to the underlying list items, sort
them, and then have the control refresh itself. I already have access to
the underlying list items since I have set the DataSource myself. But
changing the order of the items in the DataSource does not appear to result
in the items in the control being resorted.

Any suggestions?

Nov 22 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.