OrderByDescending无效C#

时间:2015-07-17 11:12:17

标签: c# asp.net linq

我正在尝试将排序列表(desc)绑定到RadioButtonList控件。但这不起作用。列表按升序绑定。

ASPX:

<asp:RadioButtonList ID="rbl" runat="server"  AppendDataBoundItems="true" 
DataTextField="OptionText" DataValueField="Value">                                        
</asp:RadioButtonList> 

C#:

List<Options> lst = GetList();
rbl.DataSource = (lst.FindAll(x => x.QId == 5)).OrderByDescending(x => x.Value).ToList();
rbl.DataBind();

public class Option
{
    private int _QId;
    public int QId
    {
        get { return _QId; }
        set { _QId = value; }
    }

    private string _OptionText;
    public string OptionText
    {
        get { return _OptionText; }
        set { _OptionText = value; }
    }

    private int? Value;
    public int? Value
    {
        get { return _Value; }
        set { _Value = value; }
    }
}

1 个答案:

答案 0 :(得分:1)

我很确定这与您使用AppendDataBoundItems="true"有关。如果您真的只想添加新项目,可以考虑添加它们

foreach(var item in (lst.FindAll(x => x.QId == 5)).OrderByDescending(x => x.Value))
{
    lst.Items.Insert(0, new ListItem(item.OptionText, item.QId));
}

不是美女,但至少你是在掌控之中。否则,请考虑创建DataTable并将其用作数据源。

注意:发现了相关问题here