如何在C#中将dropDownlist映射到枚举?
发布时间:2020-12-16 01:58:49 所属栏目:百科 来源:网络整理
导读:我已将下拉列表绑定到星期几的枚举中,如下所示: private void BindDayOfWeek() { this.ddlDayOfWeek.DataSource = GetWeekDays(); this.ddlDayOfWeek.DataBind(); } private ListDayOfWeek GetWeekDays() { return Enum.GetValues(typeof(DayOfWeek)).CastD
我已将下拉列表绑定到星期几的枚举中,如下所示:
private void BindDayOfWeek() { this.ddlDayOfWeek.DataSource = GetWeekDays(); this.ddlDayOfWeek.DataBind(); } private List<DayOfWeek> GetWeekDays() { return Enum.GetValues(typeof(DayOfWeek)).Cast<DayOfWeek>().ToList(); } 现在我想读取枚举DayOfWeek中所选工作日(来自下拉列表)的int值,即如果我从下拉列表中选择“Sunday”,我应该能够在枚举DaysOfWeek中选择“Sunday”的int值(不是ddlDayOfWeek.selectedValue或SelectedIndex) 如果没有开关和(如果我认为可以是一种方式),我怎么能这样做呢? 解决方法
由于SelectedValue是一个字符串,您需要先将其解析为int.然后你只需要把它投射到DayOfWeek:
if(ddlDayOfWeek.SelectedIndex >= 0) { int selectedDay = int.Parse(ddlDayOfWeek.SelectedValue); DayOfWeek day = (DayOfWeek) selectedDay; } 如果你没有分开DataTextField和DataValueField(你应该怎么做),你可以通过Enum.Parse将DropDownList中显示的字符串“Sunday”解析为DayOfWeek: DayOfWeek selectedDay = (DayOfWeek)Enum.Parse(typeof(DayOfWeek),ddlDayOfWeek.SelectedValue); 编辑:这是一种如何从枚举设置DataTextField / DataValueField的方法: var weekDays = Enum.GetValues(typeof(DayOfWeek)).Cast<DayOfWeek>() .Select(dow => new { Value = (int)dow,Text = dow.ToString() }) .ToList(); ddlDayOfWeek.DataSource = weekDays; ddlDayOfWeek.DataTextField = "Text"; ddlDayOfWeek.DataValueField = "Value"; ddlDayOfWeek.DataBind(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |