Binding a radiobuttonlist to a filtered datatable?

Hello,

I have a datatable that I would like to bind to a radiobuttonlist; however, I don't want all of the items to show up, so I filtered the datatable but this doesn't seem to make a difference when binding it to the radio list.  Here is an example of my table:

ROLE_ID    ROLE_NAME       AREA
1              Greater Admin    Admin
2              Admin                Admin
3              Read                  Maintenance
4              Write                 Maintenance
5              Alter                  Maintenance

plus many more.  In this case, I want only the role_names for the "maintenance" area, with the value being the role_id.  Here is my code (roleOptions is my datatable):

roleOptions.Select("area='Maintenance'");
RadioButtonList rdoList = new RadioButtonList();
rdoList.RepeatDirection = RepeatDirection.Horizontal;
rdoList.DataSource = roleOptions;
rdoList.DataValueField = "role_id";
rdoList.DataTextField = "role_name";
rdoList.DataBind();

It doesn't limit it to just the maintenance roles.  It shows:

*Greater Admin  *Admin  *Read  *Write  *Alter

when I want it just to show:

 *Read  *Write  *Alter

I am unsure how to make this easy.   I tried a hashtable and binding it and that worked awesome, but it put it in any order it wanted, which I couldn't do.  Then I tried a SortedList, but you can't control how it sorts so I dumped that idea too.  Then I tried the ArrayList, but I couldn't have different value and text fields with that.  So now I'm trying the datatable.  I can't limit the data to maintenance when I retrieve it because I will be using it for other things.

Thanks for the help.
LVL 1
dentyneAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

HavaganCommented:
The .Select method returns a row collection but doesn't filter the datatable which you're binding to the radiobuttonlist.

Try using a row filter instead.

roleOptions.DefaultView.RowFilter = " area = 'Maintenance' ";
rdoList.DataSource = roleOptions.DefaultView;
rdoList.DataValueField = "role_id";
rdoList.DataTextField = "role_name";
rdoList.DataBind();

Paul


0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
dentyneAuthor Commented:
Awesome Paul thanks!!!!
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
ASP.NET

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.