• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 220
  • Last Modified:

How do I get my object back from an item in a DropDownList ?

I have a dictionary with a class (UserClass) asvalue and a int as key
I populate the DropDownList with the dictionary using datasource
When the user selects an item from the CreatorFilter Dropdownlist I want to get the UserClass object back to get access to its ID property

Tried this: Guid UserID = (UserClass)CreatorFilter.SelectedItem).ID;
But gets the following error: Cannot convert type 'System.Web.UI.WebControls.ListItem' to 'UserClass'

How can I access the UserClass object from the selected item in the dropdownlost?
// I have a dictionary with a class (UserClass) asvalue and a int as key
private Dictionary<int, UserClass> createdBy;
 
//I populate the DropDownList with the dictionary using datasource
CreatorFilter.DataSource = createdBy;
CreatorFilter.DataTextField = "Value";
CreatorFilter.DataValueField = "Key";
CreatorFilter.DataBind();
 
//When the user selects an item from the CreatorFilter Dropdownlist I want to get the UserClass object back to get access to its ID property
// Tried this:
 
Guid UserID = (UserClass)CreatorFilter.SelectedItem).ID;
 
// But I get an error: 
// Cannot convert type 'System.Web.UI.WebControls.ListItem' to 'UserClass'
 
// How can I access the UserClass object from the selected item in the dropdownlost?

Open in new window

0
fc_curling
Asked:
fc_curling
1 Solution
 
Ashutosh VyasFounder, InitQubeCommented:
I am not too good with Generics, and have not tried your code, but my first look and I feel it should rather be:



Guid UserID = (UserClass)CreatorFilter.SelectedValue).ID;

Open in new window

0
 
TechTiger007Commented:
Try using
(UserClass)CreatorFilter.SelectedValue;;
0
 
SameerJagdaleCommented:
what type of data you will get for CreatorFilter.SelectedItem?
0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

 
fc_curlingAuthor Commented:
@ashutosh9910:, @TechTiger007:

>>Guid creator = ((UserClass)CreatorFilter.SelectedValue).ID;
Gives the following error:  Cannot convert type 'string' to 'UserClass'

@SameerJagdale:
I want to get the UserClass object back which I put into the dropdownlist using the datasource = dictionary.

0
 
fc_curlingAuthor Commented:
This is the UserClass:
public class UserClass
{
  public Guid ID;
  public string Username;
  public string Fullname;
  public int? Role;
 
  public UserClass(User user)
  {
    this.ID = user.ID;
    this.Username = user.Username;
    this.Fullname = user.FullName;
    this.Role = user.Role;
  }
  public UserClass()
  {
  }
 
  public override string ToString()
  {
    return this.Username;
  }
 
}

Open in new window

0
 
SameerJagdaleCommented:
i know that.. what i mean to ask is - currently what is the type of data you are getting..
object o = CreatorFilter.SelectedItem;
need info about o?
0
 
fc_curlingAuthor Commented:
CreatorFilter.SelectedItem; returns a ListItem object
0
 
fc_curlingAuthor Commented:
Important info: This is a dropdownlist control from a ASP.NET 3.5 webpage.
0
 
SameerJagdaleCommented:

codebehind..selectedindexchanged event
---
        int key = int.Parse(CreatorFilter.SelectedValue);
        UserClass ucclass = createdBy[key];
 
-- page load
createdBy = new Dictionary<int, UserClass>(2);
        createdBy[0] = new UserClass(1);
        createdBy[1] = new UserClass(2);
 
        //I populate the DropDownList with the dictionary using datasource
        CreatorFilter.DataSource = createdBy;
        CreatorFilter.DataTextField = "Value";
        CreatorFilter.DataValueField = "Key";
        CreatorFilter.DataBind();
 
 
my user class
-------
public class UserClass
{
    public UserClass()
    {
        
    }
 
    public UserClass(int id)
    {
        this.Id = id;
    }
 
    private int _id;
 
    public int Id
    {
        get { return _id; }
        set { _id = value; }
    }
 
}

Open in new window

0
 
fc_curlingAuthor Commented:
Sorry for the long time to close this question. I implemented a solution based on your code and forgot to close it.
0
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.

Join & Write a Comment

Featured Post

Cloud Class® Course: CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now