Best way to check if a drop down list contains a value? Best way to check if a drop down list contains a value? asp.net asp.net

Best way to check if a drop down list contains a value?


There are two methods that come to mind:

You could use Contains like so:

if (ddlCustomerNumber.Items.Contains(new     ListItem(GetCustomerNumberCookie().ToString()))){    // ... code here}

or modifying your current strategy:

if (ddlCustomerNumber.Items.FindByText(    GetCustomerNumberCookie().ToString()) != null){    // ... code here}

EDIT: There's also a DropDownList.Items.FindByValue that works the same way as FindByText, except it searches based on values instead.


That will return an item. Simply change to:

if (ddlCustomerNumber.Items.FindByText( GetCustomerNumberCookie().ToString()) != null)    ddlCustomerNumber.SelectedIndex = 0;


If 0 is your default value, you can just use a simple assignment:

ddlCustomerNumber.SelectedValue = GetCustomerNumberCookie().ToString();

This automatically selects the proper list item, if the DDL contains the value of the cookie. If it doesn't contain it, this call won't change the selection, so it stays at the default selection. If the latter one is the same as value 0, then it's the perfect solution for you.

I use this mechanism quite a lot and find it very handy.