我有一个已经绑定到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'通过引用转换,拳击转换, 拆箱转换,包装转换
答案 0 :(得分:2)
您可以重新填充RoleIdSelection列表,然后使用所选值来获取RoleIdSelection,也可以序列化RoleIdSelection列表并将其保存在隐藏字段中以便在回发时检索。两个选项中的后一个选项将使您受到客户的操纵。
这是第一个选项
//repopulate the List<RoleIdSelection>
List<RoleIdSelection> roles = GetTheRoles();
RoleIdSelection role = roles.First(r => r.RoleID==ddlUserProfile.SelectedItem.Value);
现在角色具有正确的RoleIdSelection