将数据源与一些枚举值绑定

发布于 2024-07-29 04:44:27 字数 381 浏览 3 评论 0原文

如何将数据源与某些选定的枚举值绑定?

我的枚举:

public enum Filters : byte
{
    Filter1 = 1,
    Filter2 = 2,
    Filter3 = 4,
    Filter4 = 8,
    Filter5 = 16
}

选定的值:

public Filters SelectedFilters = Filters.Filter1 | Filters.Filter4;

如何将 SelectedFilters 变量绑定为数据源?

How can I bind a DataSource with some selected enum values?

My Enum:

public enum Filters : byte
{
    Filter1 = 1,
    Filter2 = 2,
    Filter3 = 4,
    Filter4 = 8,
    Filter5 = 16
}

Selected values:

public Filters SelectedFilters = Filters.Filter1 | Filters.Filter4;

How can I bind the SelectedFilters variable as a datasource?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

顾北清歌寒 2024-08-05 04:44:27

使用:

public enum Filters : byte
{
    Filter1 = 1,
    Filter2 = 2,
    Filter3 = 4,
    Filter4 = 8,
    Filter5 = 16
}

并选择一些值:

public Filters SelectedFilters = Filters.Filter1 | Filters.Filter4;

我创建了一个可以解决我自己的问题的方法:

public static List<T> EnumToList<T>(Enum someEnum)
{
    List<T> list = new List<T>();

    foreach (var it in Enum.GetValues(someEnum.GetType()))
    {
        if ((Convert.ToByte(it) & Convert.ToByte(someEnum)) != 0)
        {
            list.Add((T)it);
        }
    }

    return list;
}


myRepeater.DataSource = EnumToList<Filters>(SelectedFilters);

Using:

public enum Filters : byte
{
    Filter1 = 1,
    Filter2 = 2,
    Filter3 = 4,
    Filter4 = 8,
    Filter5 = 16
}

And selecting some values:

public Filters SelectedFilters = Filters.Filter1 | Filters.Filter4;

I created a method that can solve my own question:

public static List<T> EnumToList<T>(Enum someEnum)
{
    List<T> list = new List<T>();

    foreach (var it in Enum.GetValues(someEnum.GetType()))
    {
        if ((Convert.ToByte(it) & Convert.ToByte(someEnum)) != 0)
        {
            list.Add((T)it);
        }
    }

    return list;
}


myRepeater.DataSource = EnumToList<Filters>(SelectedFilters);
空‖城人不在 2024-08-05 04:44:27

如果您希望能够将 DropDownList 的文本和值分开,请使用如下字典:

public static Dictionary<int, string> EnumToList(Type t)
{
    Dictionary<int, string> list = new Dictionary<int, string>();

    foreach (var v in Enum.GetValues(t))
    {
        list.Add((int)v, Enum.GetName(t, (int)v));
    }

    return list;
}

要使用它,在 LinqDataSource 选择事件的情况下:

protected void ldsMyTypes_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
     e.Result = EnumToList(typeof(Enums.FeedTypes));
}

If you want to be able to have the Text and Value of the DropDownList seperate, use a Dictionary like this:

public static Dictionary<int, string> EnumToList(Type t)
{
    Dictionary<int, string> list = new Dictionary<int, string>();

    foreach (var v in Enum.GetValues(t))
    {
        list.Add((int)v, Enum.GetName(t, (int)v));
    }

    return list;
}

To use it, in the case of a LinqDataSource Selecting event:

protected void ldsMyTypes_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
     e.Result = EnumToList(typeof(Enums.FeedTypes));
}
黑寡妇 2024-08-05 04:44:27
 Enum.GetNames(typeof(Filters ));
 Enum.GetNames(typeof(Filters ));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文