DropDownList - 获取所选项的自定义属性

时间:2014-04-12 21:28:52

标签: c# asp.net drop-down-menu

我有一个已经绑定到Dropdownlist的自定义类。

public class RoleIdSelection
    {
        public string RoleID { get; set; }
        public string RoleDesc { get; set; }
        public string OrgCode { get; set; }
        public string OrgName { get; set; }
        public string link { get; set; }
    }


List<RoleIdSelection> lstRoles = new List<RoleIdSelection>();
ddlUserProfile.DataSource = lstRoles;
ddlUserProfile.DataTextField = "RoleDesc";
ddlUserProfile.DataValueField = "RoleId";
ddlUserProfile.DataBind();

如何从所选项目中获取属性?我试过了

RoleIdSelection rid = ddlUserProfile.SelectedItem as RoleIdSelection;

但它显示警告

  

无法将类型'System.Web.UI.WebControls.ListItem'转换为   'RoleIdSelection'通过引用转换,拳击转换,   拆箱转换,包装转换

1 个答案:

答案 0 :(得分:2)

您可以重新填充RoleIdSelection列表,然后使用所选值来获取RoleIdSelection,也可以序列化RoleIdSelection列表并将其保存在隐藏字段中以便在回发时检索。两个选项中的后一个选项将使您受到客户的操纵。

这是第一个选项

//repopulate the List<RoleIdSelection>
List<RoleIdSelection> roles = GetTheRoles();

RoleIdSelection role = roles.First(r => r.RoleID==ddlUserProfile.SelectedItem.Value); 

现在角色具有正确的RoleIdSelection