C#   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在C#中将dropDownlist映射到枚举?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我已将下拉列表绑定到星期几的枚举中,如下所示:

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();

大佬总结

以上是大佬教程为你收集整理的如何在C#中将dropDownlist映射到枚举?全部内容,希望文章能够帮你解决如何在C#中将dropDownlist映射到枚举?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: